进程和线程的区别
今天学习了一下进程线程之间的区别,想到了一个形象的方法来解释,记录一下以免之后忘了。
这里做一个比喻:进程就是公司, 线程就是公司里面的员工。
1.公司搞了一个工作的地方(分配了cpu 内存等待资源)。公司有独立房子,资产(cpu 内存),而这些资产不能为个人所有,是共享公司的东西要不就被开除啦!
2.然后公司(进程)招了很多员工(创建了很多线程)来工作,很多员工(多线程)一起齐心协力,这样一个公司(进程)就可以正常工作。
3.公司内部员工之间(线程之间)的交流很方便,可以使用公司的公共的休息区交流(共享内存 静态变量等等);但是公司之间的交流就不方便了需要公司之间的打通交流渠道(进程间通讯 5种)。
4.公司是分配资产和地盘的基本单位,而员工是分配任务干活的基本单位。
注:与进程的控制表PCB相似,线程也有自己的控制表TCB,但是TCB中所保存的线程状态比PCB表中少多了。(这个不知道怎么比喻了 放在这就好了)