教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

問(wèn)答>python+大數(shù)據(jù)開發(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é)程。

和我們?cè)诰€交談!