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

全國咨詢/投訴熱線:400-618-4000

問答>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é)程。

和我們在線交談!