进程和线程总结
感觉上课学的操作系统里讲的并不是很好,找了两篇文章基本上能总结这两个东西.
首先是这个:https://www.cnblogs.com/yuanchenqi/articles/6755717.html
里面提到进程的上下文切换,能更好理解进程和线程.
然后是这个:https://blog.csdn.net/wangqyoho/article/details/52598859
基本上能概括它们的区别.
简单概括进程和线程的区别:
1.进程有自己的独立地址空间,线程没有.
2.进程是资源分配的最小单位,线程是CPU调度的最小单位.
3.进程和线程通信方式不同.
4.进程切换上下文开销大,线程开销小.
5.一个进程挂了不会影响其他进程,但是一个线程挂了会影响其他线程.
进程与线程共享:地址空间、全局变量、fd等等。。
线程独立的:寄存器,栈,错误码等等。。
线程状态图
进程状态图
挂起指的是系统因为某种原因将进程占用的内存放到外存里。
保证线程安全的4个方法:竞争与原子操作、同步与锁、可重入、过度优化。