千鋒教育Java零基礎(chǔ)全套視頻教程(一學(xué)就會(huì),java入門自學(xué)必備)

死鎖是什么?
過(guò)多的同步可能會(huì)出現(xiàn)死鎖,在程序運(yùn)行時(shí)才會(huì)出現(xiàn)
死鎖的必要條件
互斥條件:指進(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)程——資源的環(huán)形鏈,即進(jìn)程集合{A,B,C,···,Z} 中的A正在等待一個(gè)B占用的資源;B正在等待C占用的資源,……,Z正在等待已被A占用的資源。
標(biāo)簽: