1) greenlet - python中的协程库
1.1) 什么是协程 (Coroutine)
Coroutine Wiki
http://en.wikipedia.org/wiki/Coroutine
- CoRoutine是在Thread基础上的再次切分. 每一个Process可以包含多个Thread, 每个线程包含多个CoRoutine
- 在任何时刻, 同一个Thread内只能有一个CoRoutine在运行.
- 协程并不是真正的并发, 协程只是同一线程内不同代码的切换. 因此同一Thread内的CoRoutine之间如果访问共享数据, 不需要资源保护.
1.2) python中的 Coroutine 实现 - greenlet
greentlet 是python的Coroutine实现包. 用法可以参考官方的例子from greenlet import greenlet
def test1():
print 12
gr2.switch()
print 34
def test2():
print 56
gr1.switch()
print 78
gr1 = greenlet(test1)
gr2 = greenlet(test2)
gr1.switch()
greenlet.greenlet 类 就是 Coroutine 的pyth