最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java騷操作之CountDownLatch代碼詳解

 更新時(shí)間:2021年02月19日 10:45:39   作者:Java Pro  
這篇文章主要介紹了Java騷操作之CountDownLatch代碼詳解,本文通過實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

簡述

用來干嘛的?當(dāng)你在方法中調(diào)用了多個(gè)線程,對(duì)數(shù)據(jù)庫進(jìn)行了一些不為人知的操作后,還有一個(gè)操作需要留到前者都執(zhí)行完的重頭戲,就需要用到 CountDownLatch

實(shí)踐代碼

package com.github.gleans;

import java.util.concurrent.CountDownLatch;

public class TestCountDownLatch {

  public static void main(String[] args) throws InterruptedException {
    CountDownLatch latch = new CountDownLatch(3);
    new KeyPass(1000L, "thin jack", latch).start();
    new KeyPass(2000L, "noral jack", latch).start();
    new KeyPass(3000L, "fat jack", latch).start();
    latch.await();
    System.out.println("此處對(duì)數(shù)據(jù)庫進(jìn)行最后的插入操作~");
  }

  static class KeyPass extends Thread {

    private long times;

    private CountDownLatch countDownLatch;

    public KeyPass(long times, String name, CountDownLatch countDownLatch) {
      super(name);
      this.times = times;
      this.countDownLatch = countDownLatch;
    }

    @Override
    public void run() {
      try {
        System.out.println("操作人:" + Thread.currentThread().getName()
            + "對(duì)數(shù)據(jù)庫進(jìn)行插入,持續(xù)時(shí)間:" + this.times / 1000 + "秒");
        Thread.sleep(times);
        countDownLatch.countDown();
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
    }
  }
}

圖解

圖解

使用await()提前結(jié)束操作

package com.github.gleans;

import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;

public class TestCountDownLatch {

  public static void main(String[] args) throws InterruptedException {
    CountDownLatch latch = new CountDownLatch(3);
    new KeyPass(2000L, "公司一", latch).start();
    new KeyPass(3000L, "公司二", latch).start();
    new KeyPass(5000L, "公司三", latch).start();
    latch.await(2, TimeUnit.SECONDS);
    System.out.println("~~~賈總PPT巡演~~~~");
    System.out.println("~~~~融資完成,撒花~~~~");
  }

  static class KeyPass extends Thread {

    private long times;

    private CountDownLatch countDownLatch;

    public KeyPass(long times, String name, CountDownLatch countDownLatch) {
      super(name);
      this.times = times;
      this.countDownLatch = countDownLatch;
    }

    @Override
    public void run() {
      try {
        Thread.sleep(times);
        System.out.println("負(fù)責(zé)人:" + Thread.currentThread().getName()
            + "開始工作,持續(xù)時(shí)間:" + this.times / 1000 + "秒");
        countDownLatch.countDown();
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
    }
  }
}

假設(shè)公司一、公司二、公司三各需要2s、3s、5s來完成工作,賈總等不了,只能等2s,那么就設(shè)置await的超時(shí)時(shí)間

latch.await(2, TimeUnit.SECONDS);

執(zhí)行結(jié)果

負(fù)責(zé)人:公司一開始工作,持續(xù)時(shí)間:2秒
~~~賈總PPT巡演~~~~
~~~~融資完成,撒花~~~~
負(fù)責(zé)人:公司二開始工作,持續(xù)時(shí)間:3秒
負(fù)責(zé)人:公司三開始工作,持續(xù)時(shí)間:5秒

方法描述

方法描述

總結(jié)

這個(gè)操作可以說是簡單好用,目前還未遇見副作用,若是有大佬,可以告知弟弟一下,提前表示感謝~

到此這篇關(guān)于Java騷操作之CountDownLatch的文章就介紹到這了,更多相關(guān)Java CountDownLatch內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java如何優(yōu)雅的實(shí)現(xiàn)微信登錄注冊(cè)

    Java如何優(yōu)雅的實(shí)現(xiàn)微信登錄注冊(cè)

    這篇文章主要給大家介紹了關(guān)于Java如何優(yōu)雅的實(shí)現(xiàn)微信登錄注冊(cè)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-02-02
  • Java接口異步調(diào)用

    Java接口異步調(diào)用

    這篇文章主要介紹了Java接口異步調(diào)用,下面我們來一起學(xué)習(xí)一下吧
    2019-05-05
  • Java基礎(chǔ)之JDK1.8新特性lambda表達(dá)式詳解

    Java基礎(chǔ)之JDK1.8新特性lambda表達(dá)式詳解

    函數(shù)式接口有且僅有一個(gè)抽象方法,但是可以有多個(gè)非抽象方法的接口,函數(shù)式接口可以被隱式轉(zhuǎn)換為lambda表達(dá)式,這篇文章主要介紹了Java基礎(chǔ)之lambda表達(dá)式(JDK1.8新特性),需要的朋友可以參考下
    2023-08-08
  • SpringBoot實(shí)現(xiàn)配置文件加密的方案分享

    SpringBoot實(shí)現(xiàn)配置文件加密的方案分享

    項(xiàng)目的數(shù)據(jù)庫密碼、redis 密碼等明文展示在配置文件中會(huì)有潛在的風(fēng)險(xiǎn),因此采用合適的安全防護(hù)措施是有必要的,下面小編就為大家介紹一下SpringBoot中配置文件加密的方法,希望對(duì)大家有所幫助
    2023-11-11
  • 剖析Java中的事件處理與異常處理機(jī)制

    剖析Java中的事件處理與異常處理機(jī)制

    這篇文章主要介紹了Java中的事件處理與異常處理機(jī)制,講解Java是如何對(duì)事件或者異常作出響應(yīng)以及定義異常的一些方法,需要的朋友可以參考下
    2016-01-01
  • SpringBoot JVM參數(shù)調(diào)優(yōu)方式

    SpringBoot JVM參數(shù)調(diào)優(yōu)方式

    這篇文章主要介紹了SpringBoot JVM參數(shù)調(diào)優(yōu)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java面向?qū)ο笾畠?nèi)部類詳解

    Java面向?qū)ο笾畠?nèi)部類詳解

    在 Java 中,允許一個(gè)類的定義位于另一個(gè)類的內(nèi)部,前者稱為內(nèi)部類,后者稱為外部類。這篇文章將總結(jié)一下內(nèi)部類的使用,感興趣的可以了解一下
    2022-10-10
  • Spring?Cloud微服務(wù)架構(gòu)Sentinel數(shù)據(jù)雙向同步

    Spring?Cloud微服務(wù)架構(gòu)Sentinel數(shù)據(jù)雙向同步

    這篇文章主要為大家介紹了Spring?Cloud微服務(wù)架構(gòu)Sentinel數(shù)據(jù)雙向同步示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • Mybatis-Plus如何配置分頁對(duì)象

    Mybatis-Plus如何配置分頁對(duì)象

    本文主要介紹了Mybatis-Plus如何配置分頁對(duì)象,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • springboot日期轉(zhuǎn)換器實(shí)現(xiàn)實(shí)例解析

    springboot日期轉(zhuǎn)換器實(shí)現(xiàn)實(shí)例解析

    這篇文章主要介紹了springboot日期轉(zhuǎn)換器實(shí)現(xiàn)實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12

最新評(píng)論

浠水县| 东阿县| 明水县| 贺兰县| 南郑县| 常熟市| 木兰县| 南陵县| 芜湖市| 福清市| 温州市| 清河县| 库尔勒市| 攀枝花市| 黔西| 元阳县| 桂平市| 桃园县| 冷水江市| 金门县| 白沙| 哈密市| 新丰县| 侯马市| 凭祥市| 礼泉县| 上杭县| 大关县| 舒城县| 桓仁| 龙泉市| 阳泉市| 龙川县| 漳州市| 镇坪县| 阳城县| 弋阳县| 察雅县| 多伦县| 连城县| 德阳市|