linux - Python中aysncio的事件循環(huán)是屬于線(xiàn)程還是進(jìn)程?
問(wèn)題描述
默認(rèn)的get_event_loop獲取的loop是基于線(xiàn)程還是進(jìn)程,找了很久的官方文檔才找到這么一句描述,看起來(lái)是屬于當(dāng)前線(xiàn)程的?
18.5.2.4. Event loop policies and the default policyFor most users of asyncio, policies never have to be dealt with explicitly, since the default global policy is sufficient. The default policy defines context as the current thread, and manages an event loop per thread that interacts with asyncio. The module-level functions get_event_loop() and set_event_loop() provide convenient access to event loops managed by the default policy.
那么官方文檔提供的另外兩個(gè)獲取事件循環(huán)(下面的pre塊)方法一般用于什么地方?關(guān)于事件循環(huán)嘗試看了源碼但涉及到多路IO復(fù)用問(wèn)題遂放棄,求各位網(wǎng)友的指點(diǎn)?
loop = asyncio.new_event_loop()asyncio.set_event_loop(loop)
問(wèn)題解答
回答1:屬于協(xié)程,即用戶(hù)態(tài)線(xiàn)程,在單條內(nèi)核線(xiàn)程上分出多個(gè)用戶(hù)線(xiàn)程,本質(zhì)還是單線(xiàn)程,算是一個(gè)高級(jí)語(yǔ)法糖,讓你可以用同步的寫(xiě)法實(shí)現(xiàn)異步的效果(io多路復(fù)用維護(hù)起狀態(tài)來(lái)是相當(dāng)惡心的,現(xiàn)在交由asyncio來(lái)幫你維護(hù)了)
相關(guān)文章:
1. javascript - 這不是對(duì)象字面量函數(shù)嗎?為什么要new初始化?2. sql語(yǔ)句 - mysql中關(guān)聯(lián)表查詢(xún)問(wèn)題3. javascript - 如何將一個(gè)div始終固定在某個(gè)位置;無(wú)論屏幕和分辨率怎么變化;div位置始終不變4. html5 - 有可以一次性把所有 css外部樣式轉(zhuǎn)為html標(biāo)簽內(nèi)style=" "的方法嗎?5. javascript - vscode alt+shift+f 格式化js代碼,通不過(guò)eslint的代碼風(fēng)格檢查怎么辦。。。6. html - vue項(xiàng)目中用到了elementUI問(wèn)題7. javascript - 有什么比較好的網(wǎng)頁(yè)版shell前端組件?8. javascript - iframe 為什么加載網(wǎng)頁(yè)的時(shí)候滾動(dòng)條這樣顯示?9. javascript - [js]為什么畫(huà)布里不出現(xiàn)圖片呢?在線(xiàn)等10. javascript - 原生canvas中如何獲取到觸摸事件的canvas內(nèi)坐標(biāo)?
