問答>python+大數(shù)據(jù)開發(fā)>求解:Python里面的死鎖是什么?什么情況下會遇到模塊gevent下切換?
求解:Python里面的死鎖是什么?什么情況下會遇到模塊gevent下切換?
來源傳智教育2022年03月17日 14時45分46秒
死鎖相當(dāng)于就是若干子線程在系統(tǒng)資源競爭時,都在等待對方對某部分資源解除占用狀態(tài),結(jié)果是誰也不愿先解鎖,互相干等著,程序無法執(zhí)行下去,這就是死鎖。
這個概念在線程和協(xié)程里用的比較多,當(dāng)遇到多線程的時候,Python程序員往往使用協(xié)程技術(shù)來進(jìn)行替代,因為協(xié)程更加輕量級,系統(tǒng)決定進(jìn)程與線程之間的切換,協(xié)程主要是靠我們程序員自己決定,而模塊gevent下切換是遇到了耗時操作才會切換。
GIL鎖:
全局解釋器鎖(只在cpython 里才有)
作用:限制多線程同時執(zhí)行,保證同一時間只有一個線程執(zhí)行,所以cpython 里的多線程其實(shí)是偽多線程!
三者的關(guān)系:進(jìn)程里有線程,線程里有協(xié)程。
最新問答
- 2022年06月30日黑盒測試與白盒測試的區(qū)別是啥?
- 2022年06月30日Hive的安裝模式有幾種?
- 2022年06月29日Flume系統(tǒng)要求是什么?
- 2022年06月29日數(shù)據(jù)發(fā)布與訂閱有哪些主要應(yī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日非全新集群選舉的過程是什么樣的?
- 2022年06月28日applicationmaster是什么?
- 2022年06月28日yarn的工作流程是什么?
相關(guā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中想對目錄進(jìn)行刪除怎么執(zhí)行?
- 2022年04月11日Java中操作HDFS涉及哪些類?
- 2022年04月08日Zookeeper的Shell操作具體是怎樣的?