pythongreenlet如何交替運行
1、greenlet說明
greenlet是一個基于Greenlet實現(xiàn)的網(wǎng)絡(luò)庫,它使用greenlet來實現(xiàn)協(xié)同程序。其基本思想是,當greenlet遇到IO操作時,例如訪問網(wǎng)絡(luò)時,它會自動切換到其他greenlet,直到IO操作完成,然后在適當?shù)臅r候切換回繼續(xù)執(zhí)行。因為IO操作非常耗時,而且常常使程序處于等待狀態(tài),所以使用gevent來自動切換協(xié)程,可以確保運行的是greenlet,而非等待IO操作。
2、實例
可以通過gevent.sleep()交出控制權(quán):
deftest(n):
foriinrange(n):
print(gevent.getcurrent(),i)
gevent.sleep(1)
當然在實際的代碼里,我們不會用gevent.sleep()去切換協(xié)程,而是在執(zhí)行到IO操作時gevent會自動完成,所以gevent需要將Python自帶的一些標準庫的運行方式由阻塞式調(diào)用變?yōu)閰f(xié)作式運行。
以上就是pythongreenlet交替運行的方法,希望能對大家有所幫助,更多Python學(xué)習(xí)教程請關(guān)注IT培訓(xùn)機構(gòu):千鋒教育。