1樓:Leo666
一條組合語言的原子性由硬體保證;
一條python-bytecode的原子性由GIL保證;
一條python語句的執行緒安全性由執行緒鎖保證。
那為啥要有GIL? 因為python語句不是直接編譯成組合語言的,有cpython這個虛擬機器夾在中間,因此硬體無法保證python-bytecode的原子性,因此要由GIL來保證。
如果說錯了請大佬們指正。
2樓:
GIL是全域性直譯器鎖,GIL保證了在同一時間片下總有乙個Python(CPython實現)執行緒在執行。所以即使是多程序,而是順序執行的。這樣多執行緒併發就變得沒有意義。
執行緒在GIL下是有執行的時間片的
在時間片內線程如果沒有成功對資料進行操作,那麼等到下乙個時間片時,資料已經被別的執行緒修改了,那麼得到的資料就不是想要的資料了
執行緒的同步和互斥解決的是執行緒間資料的訪問正確性問題,而GIL是實現當前Python直譯器下只有乙個執行緒在執行。兩個是不同的概念。
3樓:
10 LOAD_FAST0 (x3 LOAD_CONST1 (16 BINARY_ADD7 RETURN_VALUE
參考:multithreading
只會python,還需要補上學習什麼程式語言比較好?
夢想 建議將一門語言先學精,至少要學到高階水平,如果 Python 是剛入門或者初 中級水平,建議先繼續深入學習 Python。先專一門,垂直發展,到一定程度後,就可以根據自己的興趣或實際需要,去擴充套件學習其他語言或技能。也就是先往深度發展,再往廣度發展,有自己很精很專的一套手藝後,再去擴大自己的...
信託有擔保為什麼還需要抵押?
飛天貓 固定收益信託常見的風控措施,就是擔保 質押 抵押從產品安全性的角度來說,融資方 標的質量是核心因素,信託公司的風險處理能力 信託產品的風控措施都是第二重要因素。理論上標的 融資方越好,用到後面的機會就越少。而且很多事情融資方比較好的專案,可能擔保就足夠了,但是如果同樣的專案,自然是風控越多越...
為什麼IG有the shy還需要duke
Pluto 1 他是錦鯉 2duke比the shy心態好很多 不是說shy爹心態不好而是會上頭 在和shy爹對線的所有人都應該感覺的到shy的頭硬但是這種人無外乎兩種情況 你崩或者我崩 而duke可以做到我應該能崩你但是前提是你崩不了我 你明使用者 duke很穩,theshy太過於激進了,這次ms...