CyclicBarrier的介紹及使用

2021-10-23 09:12:22 字數 1151 閱讀 8367

讓一組執行緒達到某個屏障,被阻塞,一直到組內最後乙個執行緒達到屏障時,屏障開放,所有被阻塞的執行緒會繼續執行cyclicbarrier(int parties)

cyclicbarrier( int parties ),預設屏障開放時所有執行緒同時執行;

cyclicbarrier( int parties, runnable barrieraction ),屏障開放,barrieraction定義的任務會執行,執行完成後之前的執行緒就會接著執行

countdownlatch放行由第三者控制,cyclicbarrier放行由一組執行緒本身控制

countdownlatch放行條件》=執行緒數,cyclicbarrier放行條件=執行緒數

public

class

usecyclicbarrier

}//負責屏障開放以後的工作,等待其他執行緒執行完

private

static

class

collectthread

implements

runnable

system.out.

println

(" the result = "

+ result)

; system.out.

println

("do other business........");

}}//工作執行緒

private

static

class

subthread

implements

runnable

system.out.

println

(id+

"....is await");

barrier.

await()

; thread.

sleep

(1000

+id)

; system.out.

println

("thread_"

+id+

" ....do its business ");

}catch

(exception e)}}

}

Java 柵欄 CyclicBarrier 介紹

1 類說明 乙個同步輔助類,它允許一組執行緒互相等待,直到到達某個公共屏障點 common barrier point 在涉及一組固定大小的執行緒的程式中,這些執行緒必須不時地互相等待,此時 cyclicbarrier 很有用。因為該 barrier 在釋放等待執行緒後可以重用,所以稱它為迴圈 的 ...

CyclicBarrier的簡單使用

countdownlatch雖然好用,但是也有不足,就是它的計數器不能迴圈使用,是屬於一次性的消費品,對此cyclicbarrier倒是彌補了它這個不足,大部分情況下cyclicbarrier是對countdownlatch的補充,但是兩者還是有一點小小的區別 假如公司團建,大家一起做大巴車,在大巴...

CyclicBarrier實現原理

cyclicbarrier是乙個同步輔助類,它允許一組執行緒互相等待,直到所有執行緒都到達某個公共屏障點 也可以叫同步點 即相互等待的執行緒都完成呼叫await方法,所有被屏障攔截的執行緒才會繼續執行await方法後面的程式。在涉及一組固定大小的執行緒的程式中,這些執行緒必須不時地互相等待,此時cy...