JUC学习笔记(二)——常用的辅助类
生活随笔
收集整理的這篇文章主要介紹了
JUC学习笔记(二)——常用的辅助类
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
CountDownLatch(減法計數器)
計數器
具體使用,只有計數器歸零了主線程才能繼續向下執行(即計數器歸零后,await()才會被喚醒)
CyclicBarrier(加法計數器)
加法計數器代碼
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();}}}只有當七個線程中的await都執行到了才會執行cyclicBarrier的第二個參數方法,該類兩個構造方法
Semaphore
Semaphore:信號量,限流使用
具體實現,搶車位,三個車位6輛車
原理:
semaphore.acire() 獲得,假設如果已經滿了則等待,等待到釋放為止
semaphore.release()釋放,會將當前的信號量釋放+1,然后喚醒等待的線程!
作用:多個共享資源互斥的使用!并發限流,控制最大的線程數!
總結
以上是生活随笔為你收集整理的JUC学习笔记(二)——常用的辅助类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 免费专业的linux web应用防火墙国
- 下一篇: 网络信息安全工程师的职业优势分析