python 使用gevent模塊實現手動擋切換多協程。

 1 from greenlet import greenlet
 2 
 3 def test1():
 4     print(12)
 5     g2.switch()#切換到協程g2執行,保存執行狀態
 6     print(23)
 7     g2.switch()#切換到協程g2執行,保存執行狀態
 8     print(34)
 9 def test2():
10     print(22)
11     g1.switch()#切換到協程g1執行,保存執行狀態
12     print(33)
13     g1.switch()#切換到協程g1執行,並保存執行狀態
14     print(44)
15 
16 
17 
18 
19 g1 = greenlet(test1)#啓動協程g1
20 g2 = greenlet(test2)#啓動協程g2
21 g1.switch()總結:我的認爲協程就是使用的生成器狀態,或者說相似於生成器狀態,而執行就是使用的.__next__命令內部實現。並實現狀態保存。由於是在同一進程裏,因此不須要加鎖。
相關文章
相關標籤/搜索