JUC种常用的辅助类
生活随笔
收集整理的這篇文章主要介紹了
JUC种常用的辅助类
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
常用的輔助類(lèi)
在JUC并發(fā)編程里面,有一個(gè)常用的輔助類(lèi);
java.util.concurrent 包下的;
1:CountDownLatch
這是一個(gè)一次性的現(xiàn)象 - 計(jì)數(shù)無(wú)法重置。
原理:
countDownLatch.countDown(); //數(shù)量減一1
countDownLatch.await(); //等待計(jì)數(shù)器為零 ,然后在往下執(zhí)行;
2:CyclicBarrier
釋放之后重新使用。
3:Semaphore
package com.baidu.add;import java.util.concurrent.Semaphore; import java.util.concurrent.TimeUnit;public class SemaphoreDemo {public static void main(String[] args) {//線程數(shù)量,停車(chē)位.限流!!Semaphore semaphore = new Semaphore(3);for (int i = 1; i <= 6; i++) {new Thread(()->{//acquire()得到try {semaphore.acquire();System.out.println(Thread.currentThread().getName()+"搶到車(chē)位");TimeUnit.SECONDS.sleep(2);System.out.println(Thread.currentThread().getName()+"離開(kāi)車(chē)位");} catch (InterruptedException e) {e.printStackTrace();}finally {//release()釋放semaphore.release();}},String.valueOf(i)).start();}} }原理:
semaphore.acquire(); 獲得;假設(shè)已經(jīng)滿了,等待,等待被釋放為止;
semaphore.release(); 釋放,會(huì)將當(dāng)前的釋放量釋放+1;然后喚醒等待的線程。
作用
多個(gè)共享的資源互斥的使用!并發(fā)限流,控制最大的線程數(shù)!
總結(jié)
以上是生活随笔為你收集整理的JUC种常用的辅助类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Android中如何实现多个框,andr
- 下一篇: Pug学习笔记