真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java死鎖介紹及避免方法

今天小編給大家分享的是java死鎖介紹及避免方法,相信很多人都不太了解,為了讓大家更加了解,所以給大家總結(jié)了以下內(nèi)容,一起往下看吧。一定會(huì)有所收獲的哦。

創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、外貿(mào)營銷網(wǎng)站建設(shè)、山陽網(wǎng)絡(luò)推廣、小程序制作、山陽網(wǎng)絡(luò)營銷、山陽企業(yè)策劃、山陽品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供山陽建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com

  • 死鎖的介紹:
    鎖是一個(gè)非常有用的工具,運(yùn)行場(chǎng)景非常多,因?yàn)樗褂闷饋矸浅:唵危乙子诶斫?。但同時(shí)它也會(huì)帶來一些困擾,比如死鎖問題。比如有兩個(gè)線程A和B,運(yùn)行都需要兩個(gè)資源a,b。A獲取了a資源,B獲取了b資源,接著A去請(qǐng)求b資源,B去請(qǐng)求a資源,兩個(gè)線程互相阻塞產(chǎn)生死鎖。

  • 代碼示例:

public calss DeadLockDemo{
	private static String A = "A";
	private static String B = "B";
	public static void main(String[] args){
		new DeadLockdemo().deadLock();
	}
	private void deadLock(){
		Thread t1 = new Thread(new Runnable(){
			@Override
			public void run(){
				synchronized(A){
					try{
						Thread.currentThread().sleep(2000);
					}catch(Exception e){
					  e.printStackTrace();
					 }
					 synchronized(B){
					 	System.out.println("B");
					 }
				}
			}
		});
		Thread t2 = new Thread(new Runnable(){
			@Override
			public void run(){
				synchronized(B){
					try{
						Thread.currentThread().sleep(2000);
					}catch(Exception e){
					  e.printStackTrace();
					 }
					 synchronized(A){
					 	System.out.println("A");
					 }
				}
			}
		});
		t1.start();
		t2.start();
	}
}

上述代碼執(zhí)行后會(huì)發(fā)生死鎖,t1和t2互相阻塞。

  • 死鎖產(chǎn)生的場(chǎng)景分析:
    在一個(gè)更為復(fù)雜的場(chǎng)景中,你可能會(huì)遇到這樣的問題,t1拿到鎖之后,因?yàn)橐恍┊惓G闆r而沒有釋放鎖(死循環(huán))?;蛘遲1拿到了一個(gè)數(shù)據(jù)庫鎖,釋放鎖的時(shí)候拋出了異常沒釋放掉。

  • 避免死鎖的幾種方法:
    1.盡量避免一個(gè)線程同時(shí)獲取多個(gè)鎖。
    2.盡量避免一個(gè)線程同時(shí)占據(jù)多個(gè)支援,盡量一個(gè)線程同時(shí)只占據(jù)一個(gè)資源。
    3.嘗試使用定時(shí)鎖。Lock.tryLock(timeout)來代替使用內(nèi)部鎖機(jī)制。
    4.對(duì)于數(shù)據(jù)庫鎖,加鎖和解鎖必須在一個(gè)數(shù)據(jù)庫連接里進(jìn)行。

關(guān)于java死鎖介紹及避免方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的參考價(jià)值,可以學(xué)以致用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。


新聞名稱:java死鎖介紹及避免方法
文章位置:http://weahome.cn/article/ihicop.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部