轉(zhuǎn)載:GIL(全局解釋器鎖)

GIL(全局解釋器鎖)

參考

我的機器有4核,代表著同一時間艇炎,可以干4個任務酌伊。如果單核cpu的話腾窝,我啟動10個線程,我看上去也是并發(fā)的居砖,因為是執(zhí)行了上下文的切換虹脯,讓我看上去是并發(fā)的。但是單核永遠肯定時串行的奏候,它肯定是串行的循集,cpu真正執(zhí)行的時候,因為一會執(zhí)行1蔗草,一會執(zhí)行2.咒彤。。咒精。镶柱。正常的線程就是這個樣子的。但是模叙,在python中歇拆,無論你有多少核,永遠都是假象范咨。無論你是4核故觅,8核,還是16核.......不好意思渠啊,同一時間執(zhí)行的線程只有一個(線程)输吏,它就是這個樣子的。這個是python的一個開發(fā)時候替蛉,設計的一個缺陷贯溅,所以說python中的線程是假線程。

參考

GIL(全局解釋器鎖)

我們知道多進程(mutilprocess) 和 多線程(threading)的目的是用來被多顆CPU進行訪問, 提高程序的執(zhí)行效率灭返。 但是在python內(nèi)部存在一種機制(GIL)盗迟,在多線程 時同一時刻只允許一個線程來訪問CPU。

GIL 并不是Python的特性熙含,它是在實現(xiàn)Python解析器(CPython)時所引入的一個概念罚缕。就好比C++是一套語言(語法)標準,但是可以用不同的編譯器來編譯成可執(zhí)行代碼怎静。有名的編譯器例如GCC邮弹,INTEL C++黔衡,Visual C++等。

Python也一樣腌乡,同樣一段代碼可以通過CPython盟劫,PyPy,Psyco等不同的Python執(zhí)行環(huán)境來執(zhí)行与纽。像其中的JPython就沒有GIL侣签。然而因為CPython是大部分環(huán)境下默認的Python執(zhí)行環(huán)境。所以在很多人的概念里CPython就是Python急迂,也就想當然的把 GIL 歸結(jié)為Python語言的缺陷影所。所以這里要先明確一點:GIL并不是Python的特性,Python完全可以不依賴于GIL僚碎。

雖然python支持多線程猴娩,但是由于GIL的限制,在實際運行時勺阐,程序運行后開啟多個線程卷中,但在通過GIL后同時也只能有一個線程被CPU執(zhí)行。

GIL(全局解釋器鎖)

參考:?http://www.cnblogs.com/zephyr-1/p/6043785.html

GIL并不是Python的特性渊抽,他是CPython引入的概念蟆豫,是一個全局排他鎖。

解釋執(zhí)行python代碼時腰吟,會限制線程對共享資源的訪問无埃,直到解釋器遇到I/O操作或者操作次數(shù)達到一定數(shù)目時才會釋放GIL。

所以毛雇,雖然CPython的線程庫直接封裝了系統(tǒng)的原生線程嫉称,但CPython整體作為一個進程,同一時間只會有一個獲得GIL的線程在跑灵疮,其他線程則處于等待狀態(tài)织阅。這就造成了即使在多核CPU中,多線程也只是做著分時切換而已震捣,所以多線程比較適合IO密集型荔棉,不太適合CPU密集型的任務。

同一時刻一個解釋進程只有一行bytecode 在執(zhí)行

python多線程為什么不能利用多核cpu

[py]GIL(全局解釋器鎖)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蒿赢,一起剝皮案震驚了整個濱河市润樱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌羡棵,老刑警劉巖壹若,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡店展,警方通過查閱死者的電腦和手機养篓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赂蕴,“玉大人柳弄,你說我怎么就攤上這事「潘担” “怎么了碧注?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長席怪。 經(jīng)常有香客問我应闯,道長,這世上最難降的妖魔是什么挂捻? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮船万,結(jié)果婚禮上刻撒,老公的妹妹穿的比我還像新娘。我一直安慰自己耿导,他們只是感情好声怔,可當我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著舱呻,像睡著了一般醋火。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上箱吕,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天芥驳,我揣著相機與錄音,去河邊找鬼茬高。 笑死兆旬,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的怎栽。 我是一名探鬼主播丽猬,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼熏瞄!你這毒婦竟也來了脚祟?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤强饮,失蹤者是張志新(化名)和其女友劉穎由桌,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡沥寥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年碍舍,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片邑雅。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡片橡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出淮野,到底是詐尸還是另有隱情捧书,我是刑警寧澤,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布骤星,位于F島的核電站经瓷,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏洞难。R本人自食惡果不足惜舆吮,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望队贱。 院中可真熱鬧色冀,春花似錦、人聲如沸柱嫌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽编丘。三九已至与学,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間嘉抓,已是汗流浹背索守。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留掌眠,地道東北人蕾盯。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像蓝丙,于是被迫代替她去往敵國和親级遭。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容