python中的GIL鎖

熟悉python的都知道,在C語言寫的python解釋器中存在全局解釋器鎖,由于全局解釋器鎖的存在微猖,在同一時間內(nèi),python解釋器只能運(yùn)行一個線程的代碼缘屹,這大大影響了python多線程的性能凛剥。而這個解釋器鎖由于歷史原因,現(xiàn)在幾乎無法消除轻姿。

python GIL 之所以會影響多線程等性能犁珠,是因?yàn)樵诙嗑€程的情況下,只有當(dāng)線程獲得了一個全局鎖的時候互亮,那么該線程的代碼才能運(yùn)行犁享,而全局鎖只有一個,所以使用python多線程豹休,在同一時刻也只有一個線程在運(yùn)行饼疙,因此在即使在多核的情況下也只能發(fā)揮出單核的性能。

既然python在同一時刻下只能運(yùn)行一個線程的代碼慕爬,那線程之間是如何調(diào)度的呢窑眯??

對于有io操作的線程,當(dāng)一個線程在做io操作的時候医窿,因?yàn)閕o操作不需要cpu磅甩,所以,這個時候姥卢,python會釋放python全局鎖卷要,這樣其他需要運(yùn)行的線程就會使用該鎖。?

對于cpu密集型的線程独榴,比如一個線程可能一直需要使用cpu做計算僧叉,那么python中會有一個執(zhí)行指令的計數(shù)器,當(dāng)一個線程執(zhí)行了一定數(shù)量的指令時棺榔,該線程就會停止執(zhí)行并讓出當(dāng)前的鎖瓶堕,這樣其他的線程就可以執(zhí)行代碼了。?

由上面可知症歇,至少有兩種情況python會做線程切換郎笆,一是一但有IO操作時,會有線程切換忘晤,二是當(dāng)一個線程連續(xù)執(zhí)行了一定數(shù)量的指令時宛蚓,會出現(xiàn)線程切換。當(dāng)然此處的線程切換不一定就一定會切換到其他線程執(zhí)行设塔,因?yàn)槿绻?dāng)前線程 優(yōu)先級比較高的話凄吏,可能在讓出鎖以后,又繼續(xù)獲得鎖,并優(yōu)先執(zhí)行痕钢。

在做科學(xué)計算的時候是用的單線程表谊,因?yàn)檫@種計算是需要CPU一直做計算的,如果用多線程反而會降低計算速度盖喷。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市难咕,隨后出現(xiàn)的幾起案子课梳,更是在濱河造成了極大的恐慌,老刑警劉巖余佃,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件暮刃,死亡現(xiàn)場離奇詭異,居然都是意外死亡爆土,警方通過查閱死者的電腦和手機(jī)椭懊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來步势,“玉大人氧猬,你說我怎么就攤上這事』荡瘢” “怎么了盅抚?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長倔矾。 經(jīng)常有香客問我妄均,道長,這世上最難降的妖魔是什么哪自? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任丰包,我火速辦了婚禮,結(jié)果婚禮上壤巷,老公的妹妹穿的比我還像新娘邑彪。我一直安慰自己,他們只是感情好胧华,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布锌蓄。 她就那樣靜靜地躺著,像睡著了一般撑柔。 火紅的嫁衣襯著肌膚如雪瘸爽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天铅忿,我揣著相機(jī)與錄音五垮,去河邊找鬼。 笑死垒酬,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的享言。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼渗鬼,長吁一口氣:“原來是場噩夢啊……” “哼览露!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起譬胎,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤差牛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后堰乔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體偏化,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年镐侯,在試婚紗的時候發(fā)現(xiàn)自己被綠了侦讨。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡苟翻,死狀恐怖韵卤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情崇猫,我是刑警寧澤怜俐,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站邓尤,受9級特大地震影響拍鲤,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜汞扎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一季稳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧澈魄,春花似錦景鼠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至鲫构,卻和暖如春浓恶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背结笨。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工包晰, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留湿镀,地道東北人。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓伐憾,卻偏偏與公主長得像勉痴,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子树肃,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評論 2 345

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