在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python/ python 里面的GIL和線程lock 這兩個(gè)到底什么關(guān)系?

python 里面的GIL和線程lock 這兩個(gè)到底什么關(guān)系?

經(jīng)??吹礁鞣N數(shù)據(jù)庫鎖 ,還有解釋器鎖,不是很清楚的區(qū)別

GIL 全面 global interpreter lock 我理解的意思就是給全局變量的鎖

而線程鎖 是給線程執(zhí)行的鎖?理解對嗎?

麻煩高人指教一下,這里有點(diǎn)模糊,謝謝!

回答
編輯回答
未命名

我想這里有你想要的答案知乎: Python有GIL為什么還需要線程同步?
其中我轉(zhuǎn)了一段, 我認(rèn)為這個(gè)解釋的很通俗了:
GIL是全局解釋器鎖,GIL保證了在同一時(shí)間片下總有一個(gè)Python(CPython實(shí)現(xiàn))線程在執(zhí)行。所以即使是多進(jìn)程,而是順序執(zhí)行的。這樣多線程并發(fā)就變得沒有意義。

  • 線程在GIL下是有執(zhí)行的時(shí)間片的, 在時(shí)間片內(nèi)線程如果沒有成功對數(shù)據(jù)進(jìn)行操作,那么等到下一個(gè)時(shí)間片時(shí),數(shù)據(jù)已經(jīng)被別的線程修改了,那么得到的數(shù)據(jù)就不是想要的數(shù)據(jù)了
  • 線程的同步和互斥解決的是線程間數(shù)據(jù)的訪問正確性問題,而GIL是實(shí)現(xiàn)當(dāng)前Python解釋器下只有一個(gè)線程在執(zhí)行。兩個(gè)是不同的概念。

作者:GoingMyWay
鏈接:https://www.zhihu.com/questio...
來源:知乎
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

2017年1月8日 21:12