死鎖的產生原因及解鎖方法

死鎖 如果多個線程要調用多個對象,則在上鎖的時候可能會出現「死鎖」。舉個例子:A、B兩個線程會同時使用到兩個共享變量 m和n,同時每個變量都有自己相應的鎖M和N。這時A線程首先拿到M鎖訪問m,接下來他需要拿N鎖來訪問變量n;而如果此時B線程拿着N鎖等待着M鎖的話,就造成了線程死鎖。 死鎖產生的4個必要條件: 1. 互斥:某種資源一次只允許一個進程訪問,即該資源一旦分配給某個進程,其他進程就不能再訪
相關文章
相關標籤/搜索