老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)

lock同步鎖如何在Java項(xiàng)目中使用

lock同步鎖如何在Java項(xiàng)目中使用?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

成都網(wǎng)站制作,成都營(yíng)銷(xiāo)型網(wǎng)站-創(chuàng)新互聯(lián)建站科技公司專(zhuān)注營(yíng)銷(xiāo)型網(wǎng)站建設(shè)及定制型網(wǎng)站開(kāi)發(fā)。致力為您建設(shè)最有價(jià)值的網(wǎng)站,服務(wù)熱線:028-86922220。

1)Lock是一個(gè)接口,而synchronized是Java中的關(guān)鍵字,synchronized是內(nèi)置的語(yǔ)言實(shí)現(xiàn),synchronized是在JVM層面上實(shí)現(xiàn)的,不但可以通過(guò)一些監(jiān)控工具監(jiān)控synchronized的鎖定,而且在代碼執(zhí)行時(shí)出現(xiàn)異常,JVM會(huì)自動(dòng)釋放鎖定,但是使用Lock則不行,lock是通過(guò)代碼實(shí)現(xiàn)的,要保證鎖定一定會(huì)被釋放,就必須將 unLock()放到finally{} 中;

2)synchronized在發(fā)生異常時(shí),會(huì)自動(dòng)釋放線程占有的鎖,因此不會(huì)導(dǎo)致死鎖現(xiàn)象發(fā)生;而Lock在發(fā)生異常時(shí),如果沒(méi)有主動(dòng)通過(guò)unLock()去釋放鎖,則很可能造成死鎖現(xiàn)象,因此使用Lock時(shí)需要在finally塊中釋放鎖;

3)Lock可以讓等待鎖的線程響應(yīng)中斷,線程可以中斷去干別的事務(wù),而synchronized卻不行,使用synchronized時(shí),等待的線程會(huì)一直等待下去,不能夠響應(yīng)中斷;

4)通過(guò)Lock可以知道有沒(méi)有成功獲取鎖,而synchronized卻無(wú)法辦到。

5)Lock可以提高多個(gè)線程進(jìn)行讀操作的效率。

在性能上來(lái)說(shuō),如果競(jìng)爭(zhēng)資源不激烈,兩者的性能是差不多的,而當(dāng)競(jìng)爭(zhēng)資源非常激烈時(shí)(即有大量線程同時(shí)競(jìng)爭(zhēng)),此時(shí)Lock的性能要遠(yuǎn)遠(yuǎn)優(yōu)于synchronized。所以說(shuō),在具體使用時(shí)要根據(jù)適當(dāng)情況選擇。

package lock;

/*
方式三:
  Lock鎖
synchronized和lock的不同
1.sychronized在執(zhí)行完相應(yīng)代碼塊以后屬于自動(dòng)釋放同步監(jiān)視器,lock需要手動(dòng)啟動(dòng)同步
建議優(yōu)先使用lock->同步方法塊->同步方法(在方法體之外)

實(shí)現(xiàn)Runnable對(duì)象被三個(gè)線程調(diào)用,然后這個(gè)對(duì)象的run方法里貢獻(xiàn)資源操作器被lock上鎖了

@author zsben
@create 2020-01-03 23:55
*/

import java.util.concurrent.locks.ReentrantLock;

class Window implements Runnable{

  private int ticket = 100;

  //1.實(shí)例化lock
  private ReentrantLock lock = new ReentrantLock(true);//fair=true:公平鎖,線程先來(lái)后到

  @Override
  public void run() {
    while(true){
      try{
        //2.調(diào)用lock方法
        lock.lock();

        if(ticket>0){

          try {
            Thread.sleep(100);
          } catch (InterruptedException e) {
            e.printStackTrace();
          }

          System.out.println(Thread.currentThread().getName()+": "+ticket);
          ticket--;
        }else break;
      }
      finally {
        //3.調(diào)用解鎖方法
        lock.unlock();
      }
    }
  }
}

public class LockTest {

  public static void main(String[] args) {
    Window w = new Window();

    Thread t1 = new Thread(w);
    Thread t2 = new Thread(w);
    Thread t3 = new Thread(w);

    t1.start();
    t2.start();
    t3.start();

  }
}

看完上述內(nèi)容,你們掌握 lock同步鎖如何在Java項(xiàng)目中使用的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


當(dāng)前題目:lock同步鎖如何在Java項(xiàng)目中使用
標(biāo)題網(wǎng)址:http://www.xueling.net.cn/article/jciihg.html

其他資訊

在線咨詢(xún)
服務(wù)熱線
服務(wù)熱線:028-86922220
TOP
主站蜘蛛池模板: aⅴ日本亚洲欧洲免费天堂 男生操女生视频在线观看 亚洲一久久久久久久久 | 9xfuli福利视频 | 国产亚洲精品综合一区91555 | 伊人久久一区二区 | 成人永久免费视频网站 | 台湾一区二区三区 | 亚洲欧美一区二区精品久久久 | 亚洲精品专区一区8v | 夜夜躁狠狠躁日日躁2022 | 国产成年无码a∨片在线韩国 | 老司机久久 | 穿越时空的少女免费观看动漫日语 | 自拍偷拍第八页 | 99视频免费在线 | 亚洲日本在线观看视频 | 国产一区二区三区不卡在线 | 99re6.在线观看免费视频 | 色综合天天 | 日韩精品一区二区三区色欲AV | 日本成人激情 | 狂野欧美性猛交xxxxx视频 | 国产妇女乱码一区二区三区 | www一级片 | a级毛片免费高清视频 | 在线观看国产麻豆 | 日本特黄a级片 | 美女视频又黄又免费 | 久久久久久久久久国产精品 | 九九99靖品| 在线免费观看视频一区二区 | 中文字幕视频免费在线观看 | 亚洲成人国产 | 911亚洲精品777777 | 欧美性另类69xxxx最新章节 | 程视频精品视频一区二区三区欧 | 免费国产乱码一二三区 | 一级毛片手机在线观看 | 野花社区www官网在线观看 | 男生操女生视频免费观看 | KTV少少爷互囗交Gaygv | 91久久亚洲综合精品成人 |