線程死鎖條件:
1:互斥條件 ,即資源是不能夠被共享的。
2:至少有一個進程在使用一個資源卻在等待另外一個線程所持有的一個資源
3:資源部能夠被進程搶占。
4 :必須有循環的等待
那么要解除死鎖,只要讓這幾個條件中的一個不成立就可以了。例如:
哲學家問題,如果每個哲學家都是先 取左邊的筷子,在取右邊的筷子,那么很有可能就會出現死鎖了,那么我們可以讓最后的一個哲學家是先取右邊的筷子,然后再取左邊的筷子,那么就破壞了循環等待的原則,那么死鎖自然也就不會成立了 。當然線程也可以一次獲得所有的所需資源來實現了。