进程 线程 协程

 

黑书 计算机操做系统中说了不少。html

首先,在一个cpu的状况下,进程是一个程序运行时的总和,一个时刻确定只有一个进程在执行,只是cpu会使用进程调度算法来回切换进程而已,就绪,运行,阻塞 三个状态,通常交互式操做系统采用优先级 ,时间轮转,多级反馈队列调度算法等调度算法。python

每一个进程有一个执行线程,也能够createThread 生成多线程,事实上一个时刻也只能有一个线程在cpu上运行,也是用过调度算法来进行,也是有 就绪,运行,阻塞 三个状态,通常也是时间片轮转算法,优先级算法mysql

 

进程可靠(由于是独立的地址空间,fork生成新的进程),切换开销大(进程表信息多)nginx

线程共享内存,开销小,多个线程是在一个进程之中的算法

协程开销更小, python和go都有sql

 

apache是多进程,prework模式是一个进程处理一个请求apache

 

nginx也是多进程模式,一个master,多个woker,可是加入了异步非阻塞模式多线程

 

mysql采用多线程,可是你ps看到的会有多个进程,是由于MySQL一直都是单进程、多线程的工做模式。只是,LinuxThreads并非真正的线程,所以,这些进程其实仍是采用系统调用 clone() 来共享一样的地址空间的。尽管采用 ps 查看的结果看起来是多进程,其实mysqld真正的工做方式仍是多线程。异步

 

 

http://blog.csdn.net/davissuperman/article/details/40738507操作系统

 

http://www.cnblogs.com/lianzhilei/p/6029100.html

 

http://blog.csdn.net/lishenglong666/article/details/8557215

相关文章
相关标签/搜索