线程、协程、进程

进程

进程地址空间是独立的,有独立的栈和堆,不共享栈和堆,它由OS调度。

线程

线程有自己独立的栈和共享的堆,标准线程它由OS调度。它是CPU最小的调度单位。

协程

协程是用户态的轻量级的线程,由有自己独立的栈和共享的堆,它由程序员调度。只有少数语言(比如:GO,python)支持协程编程。协程它避免了无意义的调度。

一段协程代码:

#!/usr/bin/python
# python gr.py

import greenlet

def run(name, nextGreenlets):
        for i in xrange(10):
            print name
        if nextGreenlets:
            nextGreenlets.pop(0).switch(chr(ord(name) + 1), nextGreenlets)

greenletA = greenlet.greenlet(run)
greenletB = greenlet.greenlet(run)

greenletA.switch('A', [greenletB])
原文地址:https://www.cnblogs.com/liluredhat/p/6730887.html