多執行緒CountDownLatch

2021-10-02 04:54:43 字數 1670 閱讀 3950

構造器

list

list =

newarraylist

();list.

add(

"泰隆");

list.

add(

"遊走於刀尖之上");

list.

add(

"刀下生刀下死!");

countdownlatch count =

newcountdownlatch

(list.

size()

);//引數count為計數值

使用
system.out.

println

("刀鋒之影:");

list.

stream()

.foreach

( str -

>})

; es.

shutdown()

;});

trycatch

(interruptedexception e)

擴充套件:

public boolean await(long timeout, timeunit unit) throws interruptedexception ;

//和await()類似,只不過等待一定的時間後count值還沒變為0的話就會繼續執行

executorservicenewfixedthreadpool(): 建立固定大小的執行緒池

executorservicenewcachedthreadpool(): 快取執行緒池,執行緒池的數量不固定,可以根據需求自動的更改數量。

executorservicenewsinglethreadexecutor(): 建立單個執行緒池。 執行緒池中只有乙個執行緒

scheduledexecutorservicenewscheduledthreadpool(): 建立固定大小的執行緒,可以延遲或定時的執行任務

countdownlatch:通過乙個計數器來實現,await方法阻塞直到 countdown() 呼叫計數器歸零之後釋放所有等待的執行緒,並且任何後續的await呼叫立即返回。這是一次性現象 - 計數無法重置

模擬併發示例:

public

class

parallellimit}}

class

countrunnable

implements

runnable

@override

public

void

run(

) countdownlatch.

await()

;//執行緒被掛起,後面的**暫不執行,一直等計數為0之後,累計的所有執行緒一起執行

system.out.

println

("concurrency counts = "+(

100- countdownlatch.

getcount()

));}

catch

(interruptedexception e)

}}

java多執行緒之CountDownLatch

countdownlatch是乙個同步工具類,用來協調多個執行緒之 間的同步。其能夠使 乙個執行緒在等待另外一些執行緒完成各自工作之後,再繼續執行。使用乙個計數器進行實現。計數器初始值為執行緒的數量。當每乙個執行緒完成自己任務後,計數器的值就會減一。當計數器的值為0時,表示所有的執行緒都已經完成了任...

多執行緒之倒計時器CountDownLatch及原理

這個工具通常用來控制線程等待,它可以讓某乙個執行緒等待直到倒計時結束再開始執行。countdownlatch是 共享模式 的。構造方法 countdownlatch int count count就是計數的次數 主要方法 void await 讓當前執行緒等待,直到倒計時結束 long getcou...

多執行緒 多執行緒原理

我們首先要知道什麼是多執行緒,說白了就是多個執行緒,執行緒是什麼呢,其實就是程序執行的途徑,那麼說道這裡我們又引入了乙個新的名字,就是程序,那麼我們來看看什麼是程序,其實我們自己也能看到,啟動電腦的任務管理器,我們就可以看到程序選項,裡面是我們電腦所有的程序,我們會發現有很多的程序.簡單地說就是程序...