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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java中活锁和死锁的区别_死锁、活锁、饿死和阻塞的个人理解

發(fā)布時(shí)間:2023/12/19 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中活锁和死锁的区别_死锁、活锁、饿死和阻塞的个人理解 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

以下個(gè)人理解,請(qǐng)各位前輩多多指教:

死鎖:

① 互斥條件:指進(jìn)程對(duì)所分配到的資源進(jìn)行排它性使用,在一段時(shí)間內(nèi)某資源只由一個(gè)進(jìn)程占用,如果此時(shí)還有其他進(jìn)程請(qǐng)求資源,則請(qǐng)求者只能等待,直至占有資源的進(jìn)程被釋放。

② 請(qǐng)求和保持條件:指進(jìn)程已經(jīng)保持至少一個(gè)資源,但又提出了新的資源請(qǐng)求,而該資源已被其它進(jìn)程占有,此時(shí)請(qǐng)求進(jìn)程阻塞,但又對(duì)自己已獲得的其它資源保持不放。

③ 不剝奪條件:指進(jìn)程已獲得的資源,在未使用完之前,不能被剝奪,只能在使用完時(shí)由自己釋放。

④環(huán)路等待條件:在發(fā)生死鎖時(shí),必然存在一個(gè)進(jìn)程,資源的喚醒鏈,即進(jìn)程集合{P0,P1,P2,···,Pn}中的P0正在等待一個(gè)P1占用的資源;P1正在等待P2占用的資源,……,Pn正在等待已被P0占用的資源。

解釋:

線程A或者B需要過獨(dú)木橋(使用該進(jìn)程),而C還沒有走完(進(jìn)程還在占用),于是三方僵死;

也可以是沒有C 的情況下,A和B互不禮讓僵死.

A和B都認(rèn)為自己優(yōu)先級(jí)較高應(yīng)該使用該進(jìn)程.

活鎖:

活鎖指的是任務(wù)或執(zhí)行者沒有被阻塞,由于某些條件沒有滿足,導(dǎo)致一直重復(fù)嘗試,失敗。活鎖和死鎖的區(qū)別在于,處于活鎖的實(shí)體在不斷的改變狀態(tài),而處于死鎖的實(shí)體表現(xiàn)為等待,活鎖有可能自行解開,死鎖則不能。

解釋:線程A和B都需要過橋(都需要使用進(jìn)程),而都禮讓不走(那到的系統(tǒng)優(yōu)先級(jí)相同,都認(rèn)為不是自己優(yōu)先級(jí)高),就這么僵持下去.

餓死:

指一個(gè)可運(yùn)行的進(jìn)行盡管能繼續(xù)執(zhí)行,但被調(diào)度器無限期的忽視,而不能被調(diào)度執(zhí)行的情況,餓死可以根據(jù)先來先服務(wù)資源分配策略來避免。

解釋:

這是個(gè)獨(dú)木橋(單進(jìn)程),橋上只能走一個(gè)人,B來到時(shí)A在橋上,B等待;

而此時(shí)比B年齡小的C來了,B讓C現(xiàn)行(A走完后系統(tǒng)把進(jìn)程分給了C),

C上橋后,D又來了,B又讓D現(xiàn)行(C走完后系統(tǒng)把進(jìn)程分個(gè)了D)

以此類推B一直是等待狀態(tài).

阻塞:

不用解釋了吧?

總結(jié)

以上是生活随笔為你收集整理的java中活锁和死锁的区别_死锁、活锁、饿死和阻塞的个人理解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。