亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python多線程

系統(tǒng) 2028 0

python 代碼的執(zhí)行由python虛擬機來控制,虛擬機訪問由GIL控制,保證其同一時刻只有一條線程運行。

雖然python能運行多線程,但是因為GIL所以同一時刻只有一條線程在python解釋器運行。

?

多線程下python虛擬機按以下方式執(zhí)行:

1. 設置GIL

2. 切換到一條線程去運行

3. 運行:

  a. 執(zhí)行python2虛擬機運行1000字節(jié)指令? ? 或者? ? 執(zhí)行python3虛擬機運行時間15ms字節(jié)

  b. 線程主動讓出控制(遭遇sleep或者IO操作也將觸發(fā))

4. 把線程設置為睡眠狀態(tài)(等待狀態(tài))

5. 釋放GIL

6. 再次重復上述操作

?

線程何時切換?

==========================================================

(1)一個線程無論何時開始睡眠或等待網絡 I/O,其他線程總有機會獲取 GIL 執(zhí)行 Python 代碼。這是協(xié)同式多任務處理。CPython 也還有搶占式多任務處理。如果一個線程不間斷地在 Python 2 中運行 1000 字節(jié)碼指令,或者不間斷地在 Python 3 運行15 毫秒,那么它便會放棄 GIL,而其他線程可以運行。把這想象成有多個線程但只有一個 CPU 時的時間片可用。

(2)當執(zhí)行C/C++代碼時候,直到C函數執(zhí)行完畢,才讓出GIL。

?

讓我們回顧下 Python 是如何運行的。你的程序分兩個階段運行。首先,Python文本被編譯成一個名為字節(jié)碼的簡單二進制格式。第二,Python解釋器的主回路,一個名叫 pyeval_evalframeex() 的函數,流暢地讀取字節(jié)碼,逐個執(zhí)行其中的指令。

搶占式多任務處理

當解釋器通過字節(jié)碼時,它會定期放棄GIL,而不需要經過正在執(zhí)行代碼的線程允許,這樣其他線程便能運行:默認情況下,檢測間隔是1000 字節(jié)碼。所有線程都運行相同的代碼,并以相同的方式定期從他們的鎖中抽出。在 Python 3 GIL 的實施更加復雜,檢測間隔不是一個固定數目的字節(jié)碼,而是15 毫秒。然而,對于你的代碼,這些差異并不顯著。

協(xié)同式多任務處理

當一項任務比如網絡 I/O啟動,而在長的或不確定的時間,沒有運行任何 Python 代碼的需要,一個線程便會讓出GIL,從而其他線程可以獲取 GIL 而運行 Python。

這種禮貌行為稱為協(xié)同式多任務處理,它允許并發(fā);多個線程同時等待不同事件。多個線程在同一時刻只能有一個執(zhí)行 Python ,但一旦線程開始連接,它就會放棄 GIL ,這樣其他線程就可以運行。這意味著多個線程可以并發(fā)等待套接字連接,這是一件好事。在同樣的時間內它們可以做更多的工作。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 2020久久精品永久免费 | 中文字幕亚洲第一 | 日本在线一卡二卡毛片 | 91精品国产综合久久精品 | 亚洲伊人久久综合 | 国产美女视频免费 | 最新69成人精品毛片 | 国产精品亚洲视频 | 欧美日韩成人在线 | 久久青草精品一区二区三区 | 中文字幕在线影院 | 久久亚洲综合网 | 日本免费特黄aa毛片 | 色网站在线看 | jizjizjiz亚洲人 | 性影院 | 国产欧美视频综合二区 | 欧美性xxxxbbbb | 丁香午夜| 国产精品高清一区二区 | 久久精品亚洲精品一区 | 在线观看国产一区二区三区99 | 又粗又大的机巴好爽欧美 | 婷婷亚洲国产成人精品性色 | 色视频在线观看视频 | 真实国语对白视频播放 | 日本一区二区三区在线 观看网站 | 久久精品国产99国产精品亚洲 | 国内精品手机在线观看视频 | 精品国产欧美一区二区三区成人 | 250pp久久新| 国产成人亚洲精品乱码在线观看 | 国产100页| 欧美日韩亚洲第一页 | 欧美成人xxxxxxxx在线 | 久久久国产视频 | 国内精品免费视频 | 国产精品爱久久久久久久9999 | 91这里只有精品 | 99国产在线观看 | 国产一级α片 |