JUC常用辅助类
常用輔助類(必會(huì)!!)
CountDownLatch
發(fā)音:康特?fù)趵逼?br />
package com.add;import java.util.concurrent.CountDownLatch;//計(jì)數(shù)器 +1/*** 場景:放學(xué)后6個(gè)學(xué)生走完后,才關(guān)門!!!! 保證了所有的人都走了,不會(huì)關(guān)在里面*/ public class CountDownLatchDemo {public static void main(String[] args) throws InterruptedException {//倒計(jì)時(shí)總數(shù)是6//應(yīng)用場景,必須要執(zhí)行任務(wù)的時(shí)候,再使用!CountDownLatch countDownLatch = new CountDownLatch(6);for (int i = 1; i <=6; i++) {new Thread(()->{//打印出誰走了System.out.println(Thread.currentThread().getName()+"Go out");countDownLatch.countDown();//數(shù)量-1},String.valueOf(i)).start();}countDownLatch.await();//等待計(jì)數(shù)器歸零,然后再向下執(zhí)行System.out.println("Close DOOR");} }原理:
每次有現(xiàn)成調(diào)用countDown() 數(shù)量 -1,假設(shè)計(jì)數(shù)器變?yōu)?, countDownLatch.await() 就會(huì)被喚醒,繼續(xù)執(zhí)行!
CyclicBarrier
發(fā)音:賽課理科拜日也
1.加法計(jì)數(shù)器
代碼示例
Semaphore
Semaphore 發(fā)音:samefour
意思:信號(hào)量,相當(dāng)于一個(gè)通行證
舉個(gè)例子
搶車位:
6車子–3個(gè)停車位置
123
456
代碼案例:
原理:
semaphore.acquire(); //獲得,假設(shè)已經(jīng)滿了,等待,等待被釋放為止!
semaphore.release();// 釋放,會(huì)將當(dāng)前的信號(hào)量釋放+1,喚醒等待的線程!
作用:多個(gè)共享資源互斥的作用!,并發(fā)限流,控制最大線程的線程數(shù)!
總結(jié)
- 上一篇: mysql导出excelsql语句乱码_
- 下一篇: 网格计算(二)