日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java:什么是死锁?怎么避免死锁?

發布時間:2023/12/31 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java:什么是死锁?怎么避免死锁? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 死鎖的概念

? ? ? 線程死鎖描述的是這樣一種情況:多個線程同時被阻塞,它們中的一個或者全部都在等待某個資源被釋放。由于線程被無限期地阻塞,因此程序不可能正常終止。

? ? ? 好比是甲同學和乙同學在打掃衛生,甲同學拿著掃帚等乙同學的簸箕,而乙同學拿著簸箕在等甲同學的掃帚

2.死鎖產生的條件

????????互斥條件:同一時刻一線程只能占用一個資源。

同一時刻,甲拿著掃帚,乙拿著簸箕。

????????請求與保持:一個線程因請求資源而阻塞時,對已獲得的資源保持不放。

甲在等乙的簸箕,但甲不會讓出自己的掃帚

????????不可剝奪:已獲得的資源在為使用完時,其他線程不能強行剝奪。

甲拿著掃帚,但是甲不能去強搶乙拿的簸箕

????????循環等待

甲拿著掃帚在等乙的簸箕,而乙拿著簸箕等甲的掃帚,形成閉環

3.如何避免死鎖呢?

????????打破產生條件即可

破壞互斥條件:無法被破壞,因為鎖就是通過互斥來解決線程安全問題

破壞請求與保持條件:一次申請所有需要的資源

破壞不可剝奪條件:如果線程已占用部分資源,且他還要申請其他資源,如果申請不到,就主動釋放它自己占有的資源

破壞循環等待條件:按照順序申請資源,釋放資源則逆序

總結

以上是生活随笔為你收集整理的Java:什么是死锁?怎么避免死锁?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。