线程和进程和协程

进程

  • 进程是程序执行时的一个实例,是担当分配系统资源(CPU时间、内存等)的基本单位;

  • 进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响;

  • 进程间可以通过信号、信号量、共享内存、管道、队列等来进行通信;

  • 进程创建、销毁、上下文切换带来的开销成本都很大;

线程

  • 线程是进程的一个实体,作为独立运行和独立调度的基本单位。

  • 线程可与同属一个进程的其他的线程共享进程所拥有的全部资源。

  • 线程只是一个进程中的不同执行路径,没有单独的地址空间,一个线程死掉就会导致整个进程死掉。

  • 线程创建、销毁、上下文切换带来的开销要比进程小得多;

协程

  • 协程的控制有应用程序控制,非抢占式的;

  • 切换快,开销相较线程更小,所以可以开更多的协程;

 

具体使用参考

谈谈python的GIL、多线程、多进程

关注公众号:数据结构与算法那些事儿,每天一篇数据https://www.cnblogs.com/George1994/p/10615435.html