摘要:問題背景是版本引入的標準庫,直接內置了對異步的支持。最近我在多線程調用使用方法的時候,出現報錯后來查過一些資料,發現不允許嵌套事件出現,需要引入。總結給自己留個記錄,防止忘了。如果對你有用的話,點個贊吧。
asyncio是Python 3.4版本引入的標準庫,直接內置了對異步IO的支持。最近我在多線程調用使用asyncio方法的時候,出現報錯:
This event loop is already running
后來查過一些資料,發現asyncio不允許嵌套事件出現,需要引入nest_asyncio。
引入nest_asyncio模塊
pip install nest_asyncio -i https://pypi.douban.com/simple
代碼添加
import nest_asyncionest_asyncio.apply()
其他的不需要改動。
給自己留個記錄,防止忘了。如果對你有用的話,點個贊吧。
?
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/124514.html
摘要:所以在第一遍閱讀官方文檔的時候,感覺完全是在夢游。通過或者等待另一個協程的結果或者異常,異常會被傳播。接口返回的結果指示已結束,并賦值。取消與取消不同。調用將會向被包裝的協程拋出。任務相關函數安排協程的執行。負責切換線程保存恢復。 Tasks and coroutines 翻譯的python官方文檔 這個問題的惡心之處在于,如果你要理解coroutine,你應該理解future和tas...
摘要:解決方案我們可以使用函數建立一個新的事件循環,并使用設置全局的事件循環,這時候就可以多次運行異步的事件循環了,不過最好保存默認的并在事件循環結束的時候還原回去。 背景 我們在Python異步程序編寫中經常要用到如下的結構 import asyncio async def doAsync(): await asyncio.sleep(0) #... if __name__...
摘要:是并發的一種方式。并不能帶來真正的并行。可交給執行的任務,稱為協程。輸出等待三秒鐘程序退出現在改用輸出等待三秒鐘程序沒有退出三秒鐘過后,結束,但是程序并不會退出。但是如果關閉了,就不能再運行了此處異常建議調用,以徹底清理對象防止誤用。 所謂「異步 IO」,就是你發起一個 IO 操作,卻不用等它結束,你可以繼續做其他事情,當它結束時,你會得到通知。 Asyncio 是并發(concurr...
摘要:是之后引入的標準庫的,這個包使用事件循環驅動的協程實現并發。沒有能從外部終止線程,因為線程隨時可能被中斷。上一篇并發使用處理并發我們介紹過的,在中,只是調度執行某物的結果。 asyncio asyncio 是Python3.4 之后引入的標準庫的,這個包使用事件循環驅動的協程實現并發。asyncio 包在引入標準庫之前代號 Tulip(郁金香),所以在網上搜索資料時,會經常看到這種花的...
摘要:具有以下基本同步原語子進程提供了通過創建和管理子進程的。雖然隊列不是線程安全的,但它們被設計為專門用于代碼。表示異步操作的最終結果。 Python的asyncio是使用 async/await 語法編寫并發代碼的標準庫。通過上一節的講解,我們了解了它不斷變化的發展歷史。到了Python最新穩定版 3.7 這個版本,asyncio又做了比較大的調整,把這個庫的API分為了 高層級API和...
閱讀 2473·2021-11-23 09:51
閱讀 1879·2021-10-13 09:40
閱讀 1399·2021-09-30 10:01
閱讀 603·2021-09-26 09:46
閱讀 2264·2021-09-23 11:55
閱讀 1411·2021-09-10 10:51
閱讀 2277·2021-09-09 09:33
閱讀 2243·2019-08-29 17:25