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__命令內部實現。並實現狀態保存。由於是在同一進程裏,因此不須要加鎖。