JUC学习笔记(二)——常用的辅助类
生活随笔
收集整理的這篇文章主要介紹了
JUC学习笔记(二)——常用的辅助类
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
CountDownLatch(減法計(jì)數(shù)器)
計(jì)數(shù)器
具體使用,只有計(jì)數(shù)器歸零了主線程才能繼續(xù)向下執(zhí)行(即計(jì)數(shù)器歸零后,await()才會(huì)被喚醒)
CyclicBarrier(加法計(jì)數(shù)器)
加法計(jì)數(shù)器代碼
public class CyclicBarrierDemo {public static void main(String[] args) {CyclicBarrier cyclicBarrier = new CyclicBarrier(7, () -> {System.out.println("召喚神龍成功");});for (int i = 0; i < 7; i++) {new Thread(() -> {System.out.println("收集了" + Thread.currentThread().getName() + "顆龍珠");try {cyclicBarrier.await();} catch (InterruptedException e) {e.printStackTrace();} catch (BrokenBarrierException e) {e.printStackTrace();}}, String.valueOf(i +1)).start();}}}只有當(dāng)七個(gè)線程中的await都執(zhí)行到了才會(huì)執(zhí)行cyclicBarrier的第二個(gè)參數(shù)方法,該類(lèi)兩個(gè)構(gòu)造方法
Semaphore
Semaphore:信號(hào)量,限流使用
具體實(shí)現(xiàn),搶車(chē)位,三個(gè)車(chē)位6輛車(chē)
原理:
semaphore.acire() 獲得,假設(shè)如果已經(jīng)滿了則等待,等待到釋放為止
semaphore.release()釋放,會(huì)將當(dāng)前的信號(hào)量釋放+1,然后喚醒等待的線程!
作用:多個(gè)共享資源互斥的使用!并發(fā)限流,控制最大的線程數(shù)!
總結(jié)
以上是生活随笔為你收集整理的JUC学习笔记(二)——常用的辅助类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 免费专业的linux web应用防火墙国
- 下一篇: 网络信息安全工程师的职业优势分析