99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

Java可重入鎖的實(shí)現(xiàn)原理與應(yīng)用場(chǎng)景

可重入鎖,從字面來(lái)理解,就是可以重復(fù)進(jìn)入的鎖。

成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括懷柔網(wǎng)站建設(shè)、懷柔網(wǎng)站制作、懷柔網(wǎng)頁(yè)制作以及懷柔網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,懷柔網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到懷柔省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

可重入鎖,也叫做遞歸鎖,指的是同一線程外層函數(shù)獲得鎖之后,內(nèi)層遞歸函數(shù)仍然有獲取該鎖的代碼,但不受影響。

在JAVA環(huán)境下ReentrantLocksynchronized都是可重入鎖。

synchronized是一個(gè)可重入鎖。在一個(gè)類中,如果synchronized方法1調(diào)用了synchronized方法2,方法2是可以正常執(zhí)行的,這說(shuō)明synchronized是可重入鎖。否則,在執(zhí)行方法2想獲取鎖的時(shí)候,該鎖已經(jīng)在執(zhí)行方法1時(shí)獲取了,那么方法2將永遠(yuǎn)得不到執(zhí)行。

可重入鎖在什么場(chǎng)景使用呢?

可重入鎖主要用在線程需要多次進(jìn)入臨界區(qū)代碼時(shí),需要使用可重入鎖。具體的例子,比如上文中提到的一個(gè)synchronized方法需要調(diào)用另一個(gè)synchronized方法時(shí)。

可重入鎖的實(shí)現(xiàn)原理是怎么樣的?

加鎖時(shí),需要判斷鎖是否已經(jīng)被獲取。如果已經(jīng)被獲取,則判斷獲取鎖的線程是否是當(dāng)前線程。如果是當(dāng)前線程,則給獲取次數(shù)加1。如果不是當(dāng)前線程,則需要等待。

釋放鎖時(shí),需要給鎖的獲取次數(shù)減1,然后判斷,次數(shù)是否為0了。如果次數(shù)為0了,則需要調(diào)用鎖的喚醒方法,讓鎖上阻塞的其他線程得到執(zhí)行的機(jī)會(huì)。

下面是一個(gè)用synchronized實(shí)現(xiàn)的例子:

public class ReentrantTest implements Runnable {
  public synchronized void get() {
    System.out.println(Thread.currentThread().getName());
    set();
  }
  public synchronized void set() {
    System.out.println(Thread.currentThread().getName());
  }
  public void run() {
    get();
  }
  public static void main(String[] args) {
    ReentrantTest rt = new ReentrantTest();
    for(;;){
      new Thread(rt).start();
    }
  }
}

整個(gè)過(guò)程沒(méi)有發(fā)生死鎖的情況,截取一部分輸出結(jié)果如下:

Thread-8492
Thread-8492
Thread-8494
Thread-8494
Thread-8495
Thread-8495
Thread-8493
Thread-8493

set()get()同時(shí)輸出了線程名稱,表明即使遞歸使用synchronized也沒(méi)有發(fā)生死鎖,證明其是可重入的。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)創(chuàng)新互聯(lián)的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

本文名稱:Java可重入鎖的實(shí)現(xiàn)原理與應(yīng)用場(chǎng)景
文章來(lái)源:http://www.yijiale78.com/article42/pchohc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、電子商務(wù)網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站維護(hù)、網(wǎng)站排名、網(wǎng)站營(yíng)銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)