為什么說python多線程是雞肋。有一個很重要的原因是:python無法發(fā)揮多核cpu的性能優(yōu)勢仇奶。
對于后面的說法(即:python無法發(fā)揮多核cpu的性能優(yōu)勢),我是贊同的比驻。但因此得出結(jié)論:python多線程是雞肋卻還有待商榷该溯。
首先我們要知道為什么python無法發(fā)揮多核cpu的性能優(yōu)勢?因為python(這里指cpython)有一個叫做GIL的東西别惦,名叫全局解釋器鎖狈茉。它是在解釋器層面添加了一個鎖,好處就是在一定程度上保證了線程的安全掸掸,但帶來的影響就是哪怕你cpu再多氯庆,資源再豐富,同一時間解釋器也只能運行一個線程扰付。
但是我們的程序一般分為兩種堤撵,cpu密集型和io密集型。
常見的cpu密集型一般和各種計算有關(guān)羽莺,比如視頻解碼实昨。
常見的io密集型有數(shù)據(jù)庫操作,文件讀寫
有必要強調(diào)一點盐固,我認(rèn)為荒给,io密集型不是說反復(fù)的去讀寫文件。而是指在一段時間內(nèi)刁卜,程序運行的大部分時間段是用在io操作上
對于cpu密集型程序來說志电,python確實沒有太好的辦法。原因如上蛔趴,GIL的存在顯示了cpu的發(fā)揮
但是對于io密集型程序來說挑辆,python還是有一定意義的,因為io密集型程序孝情,比如在文件讀寫過程其實有一部分時間是要用來等待的之拨,那這部分等待時間就可以用來執(zhí)行其他io操作。這也可以提升io程序執(zhí)行效率
python的多線程是不是雞肋派继?
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來氯哮,“玉大人际跪,你說我怎么就攤上這事『砀郑” “怎么了姆打?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長肠虽。 經(jīng)常有香客問我幔戏,道長,這世上最難降的妖魔是什么税课? 我笑而不...
- 正文 為了忘掉前任闲延,我火速辦了婚禮,結(jié)果婚禮上韩玩,老公的妹妹穿的比我還像新娘垒玲。我一直安慰自己,他們只是感情好找颓,可當(dāng)我...
- 文/花漫 我一把揭開白布侍匙。 她就那樣靜靜地躺著,像睡著了一般叮雳。 火紅的嫁衣襯著肌膚如雪想暗。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼辽狈,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了呛牲?” 一聲冷哼從身側(cè)響起刮萌,我...
- 正文 年R本政府宣布,位于F島的核電站减俏,受9級特大地震影響召烂,放射性物質(zhì)發(fā)生泄漏碱工。R本人自食惡果不足惜娃承,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望怕篷。 院中可真熱鬧历筝,春花似錦、人聲如沸廊谓。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽蒸痹。三九已至春弥,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間叠荠,已是汗流浹背匿沛。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 最近在看Python的多線程,經(jīng)常我們會聽到老手說:“Python下多線程是雞肋框沟,推薦使用多進(jìn)程拾碌!”吐葱,但是為什么這...
- 轉(zhuǎn)載自 http://bbs.51cto.com/thread-1349105-1.html參考:Python多線...
- Python多線程的一些理解: 1.多線程采用的是分時復(fù)用技術(shù)弟跑,即不存在真正的多線程,cpu做的事是快速地切換線程...
- 1 概念梳理: 1.1 線程 1.1.1 什么是線程 線程是操作系統(tǒng)能夠進(jìn)行運算調(diào)度的最小單位防症。它被包含在進(jìn)程之中...
- 多線程編程技術(shù)可以實現(xiàn)代碼并行孟辑,優(yōu)化處理能力,同時可以將代碼劃分為功能更小的模塊蔫敲,使代碼的可重用性更好饲嗽。這里將介紹...