JUC种常用的辅助类
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                JUC种常用的辅助类
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                常用的輔助類
在JUC并發編程里面,有一個常用的輔助類;
 java.util.concurrent 包下的;
1:CountDownLatch
這是一個一次性的現象 - 計數無法重置。
 
原理:
 countDownLatch.countDown(); //數量減一1
 countDownLatch.await(); //等待計數器為零 ,然后在往下執行;
 
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) {//線程數量,停車位.限流!!Semaphore semaphore = new Semaphore(3);for (int i = 1; i <= 6; i++) {new Thread(()->{//acquire()得到try {semaphore.acquire();System.out.println(Thread.currentThread().getName()+"搶到車位");TimeUnit.SECONDS.sleep(2);System.out.println(Thread.currentThread().getName()+"離開車位");} catch (InterruptedException e) {e.printStackTrace();}finally {//release()釋放semaphore.release();}},String.valueOf(i)).start();}} }原理:
 semaphore.acquire(); 獲得;假設已經滿了,等待,等待被釋放為止;
 semaphore.release(); 釋放,會將當前的釋放量釋放+1;然后喚醒等待的線程。
作用
 多個共享的資源互斥的使用!并發限流,控制最大的線程數!
總結
以上是生活随笔為你收集整理的JUC种常用的辅助类的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Android中如何实现多个框,andr
- 下一篇: Android studio中如何调用s
