进程线程协程

一、进程

   资源分配和调度的基本单位

    各个进程拥有自己的代码段。

   进程拥有自己独立的堆和栈,既不共享堆,亦不共享栈,进程由操作系统调度。

二、线程

   线程比进程轻量级,线程的切换cpu花费比进程小,线程能加大系统的并行度。

   一个进程的各个线程之间是共享代码段的,各个线程都有一个程序计数器来指向下一条应该执行的指令。

   线程拥有自己独立的栈和共享的堆,共享堆,不共享栈,线程亦由操作系统调度(标准线程是的)。

三、协程

    协程和线程一样共享堆,不共享栈,协程由程序员在协程的代码里显示调度。

    每个任务不完全占据一个进程或者线程,当任务在执行过程中,需要等待IO等资源时,任务将所占据的进程或者线程释放,以便其他任务使用这个进程或者线程。各种语言对于协程支持时,多数都采用了Actor Modle来实现,每个任务就是一个Actor,Actor之间通过消息来进行交互,而不是采用共享的方式。Actor可以看做是一个轻量级的进程或者线程。

问题:协程怎么易于异步化了?还需要仔细研究下

kilim框架  

协程http://www.blogjava.net/BlueDavy/archive/2010/01/28/311148.html

        

原文地址:https://www.cnblogs.com/YDDMAX/p/5540908.html