linux - Python中aysncio的事件循環(huán)是屬于線程還是進(jìn)程?
問題描述
默認(rèn)的get_event_loop獲取的loop是基于線程還是進(jìn)程,找了很久的官方文檔才找到這么一句描述,看起來是屬于當(dāng)前線程的?
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ǎng)友的指點(diǎn)?
loop = asyncio.new_event_loop()asyncio.set_event_loop(loop)
問題解答
回答1:屬于協(xié)程,即用戶態(tài)線程,在單條內(nèi)核線程上分出多個(gè)用戶線程,本質(zhì)還是單線程,算是一個(gè)高級(jí)語法糖,讓你可以用同步的寫法實(shí)現(xiàn)異步的效果(io多路復(fù)用維護(hù)起狀態(tài)來是相當(dāng)惡心的,現(xiàn)在交由asyncio來幫你維護(hù)了)
相關(guān)文章:
1. 運(yùn)行python程序時(shí)出現(xiàn)“應(yīng)用程序發(fā)生異常”的內(nèi)存錯(cuò)誤?2. macos - 無法source activate python273. javascript - 打算寫一個(gè)c++的node圖像處理模塊,有沒有推薦的c++圖片處理庫?4. android - Genymotion 模擬器可以做屏幕適配檢測(cè)嗎?5. java - butterknife怎么綁定多個(gè)view6. html - vue里面:src在IE(9-11)下不顯示圖片7. html5 - 前端面試碰到了一個(gè)緩存數(shù)據(jù)的問題,來論壇上請(qǐng)教一下8. PHPExcel表格導(dǎo)入數(shù)據(jù)庫怎么導(dǎo)入9. css - 移動(dòng)端 盒子內(nèi)加overflow-y:scroll后 字體會(huì)變大10. html - 非微信官方網(wǎng)頁,將由微信轉(zhuǎn)換為手機(jī)預(yù)覽模式

網(wǎng)公網(wǎng)安備