线程进程协程

简单总结


1.进程包含线程,线程包含协程


2.进程是操作系统资源分配的基本单位,每启动一个进程都需要向操作系统索要运行资源,一个进程有一个或多个线程


3.线程是cpu调度的基本单位,通过线程去执行进程中代码, 线程是执行代码的分支


4.线程之间共享全局变量,但是要注意资源竞争的问题,可以用互斥锁避免这种局面,不小心容易造成死锁。
  
  进程之间不共享全局变量。进程之间如果想通信,用q(消息队列)。


  进程池是你让系统自动创建多少条进程帮你完成任务,系统会用生成小于等于你设定的进程数完成你的任务。


  注意:主进程(线程)都会等待子进程(线程)执行完再退出,但是主进程不会等待进程池执行完再退出,此  时要  先q.close() q.join() 来保证进程池执行完


5.协程是一个用户层面的概念,不同协程的模型实现可能是单线程,也可能是多线程


6.协程的本质就是使用当前进程在不同的函数代码中切换执行,可以理解为并行


7.多进程、多线程根据cpu核数不一样,可能是并行的 也可能是并发的


8.多进程开发稳定性强,但是资源开销大


9.线程切换需要的资源一般,效率一般,协程切换任务资源很小,效率高.


10.多进程开发某个进程死了不会影响其它进程的运行,但是多线程开发该进程死了那么这些线程都要进行销毁


11.多线程开发线程之间执行是无序的,协程之间执行按照一定顺序交替执行

猜你喜欢

转载自blog.csdn.net/weixin_42153428/article/details/80275207