問(wèn)答>python+大數(shù)據(jù)開(kāi)發(fā)>求解:Python里面的死鎖是什么?什么情況下會(huì)遇到模塊gevent下切換?
求解:Python里面的死鎖是什么?什么情況下會(huì)遇到模塊gevent下切換?
來(lái)源傳智教育2022年03月17日 14時(shí)45分46秒
死鎖相當(dāng)于就是若干子線程在系統(tǒng)資源競(jìng)爭(zhēng)時(shí),都在等待對(duì)方對(duì)某部分資源解除占用狀態(tài),結(jié)果是誰(shuí)也不愿先解鎖,互相干等著,程序無(wú)法執(zhí)行下去,這就是死鎖。
這個(gè)概念在線程和協(xié)程里用的比較多,當(dāng)遇到多線程的時(shí)候,Python程序員往往使用協(xié)程技術(shù)來(lái)進(jìn)行替代,因?yàn)閰f(xié)程更加輕量級(jí),系統(tǒng)決定進(jìn)程與線程之間的切換,協(xié)程主要是靠我們程序員自己決定,而模塊gevent下切換是遇到了耗時(shí)操作才會(huì)切換。
GIL鎖:
全局解釋器鎖(只在cpython 里才有)
作用:限制多線程同時(shí)執(zhí)行,保證同一時(shí)間只有一個(gè)線程執(zhí)行,所以cpython 里的多線程其實(shí)是偽多線程!
三者的關(guān)系:進(jìn)程里有線程,線程里有協(xié)程。
最新問(wèn)答
- 2022年06月30日黑盒測(cè)試與白盒測(cè)試的區(qū)別是啥?
- 2022年06月30日Hive的安裝模式有幾種?
- 2022年06月29日Flume系統(tǒng)要求是什么?
- 2022年06月29日數(shù)據(jù)發(fā)布與訂閱有哪些主要應(yīng)用場(chǎng)景?
- 2022年06月29日Zookeeper集群角色有哪三種?
- 2022年06月29日hadoop1.x和hadoop2.x的區(qū)別是什么,做了哪些改進(jìn)?
- 2022年06月28日znode有哪兩種節(jié)點(diǎn)?
- 2022年06月28日非全新集群選舉的過(guò)程是什么樣的?
- 2022年06月28日applicationmaster是什么?
- 2022年06月28日yarn的工作流程是什么?
相關(guān)問(wèn)答
- 2022年04月18日OneToOneField關(guān)系字段具體怎么使用?
- 2022年04月18日Django中的ForeignKey是定義什么的?
- 2022年04月15日Django中如何配置類屬性?
- 2022年04月14日如何排除不需要在表單中出現(xiàn)的模型字段?
- 2022年04月14日求教:通用視圖都有哪些分類?
- 2022年04月12日Znode的屬性是什么樣的?
- 2022年04月12日Zookeeper具有哪些特性?
- 2022年04月11日HDFS中想對(duì)目錄進(jìn)行刪除怎么執(zhí)行?
- 2022年04月11日Java中操作HDFS涉及哪些類?
- 2022年04月08日Zookeeper的Shell操作具體是怎樣的?