java 5 引入的 Concurrent 并發(fā)庫軟件包中的 CyclicBarrier 是一個同步輔助類,它允許一組線程互相等待,直到到達某個公共屏障點 (common barrier point)。在涉及一組固定大小的線程的程序中,這些線程必須不時地互相等待,此時 CyclicBarrier 很有用。因為該 barrier 在釋放等待線程后可以重用,所以稱它為循環(huán) 的 barrier。CyclicBarrier 支持一個可選的 Runnable 命令,在一組線程中的最后一個線程到達之后(但在釋放所有線程之前),該命令只在每個屏障點運行一次。若在繼續(xù)所有參與線程之前更新共享狀態(tài),此屏障操作很有用。比如:在某種需求中,一個大型的任務,常常需要分配好多子任務去執(zhí)行,只有當所有子任務都執(zhí)行完成時候,才能執(zhí)行主任務,這時候,就可以選擇 CyclicBarrier。
新聞熱點
疑難解答