java多線程之CyclicBarrier的使用方法
更新時間:2017年10月24日 15:55:09 作者:chuyouyinghe
這篇文章主要介紹了java多線程之CyclicBarrier的使用方法的相關(guān)資料,希望通過本文能幫助到大家,讓大家理解掌握這部分內(nèi)容,需要的朋友可以參考下
java多線程之CyclicBarrier的使用方法
public class CyclicBarrierTest { public static void main(String[] args) { ExecutorService service = Executors.newCachedThreadPool(); final CyclicBarrier cb = new CyclicBarrier(3); for(int i=0;i<3;i++){ Runnable runnable = new Runnable(){ public void run(){ try { Thread.sleep((long)(Math.random()*10000)); System.out.println("線程" + Thread.currentThread().getName() + "即將到達集合地點1,當前已有" + (cb.getNumberWaiting()+1) + "個已經(jīng)到達," + (cb.getNumberWaiting()==2?"都到齊了,繼續(xù)走啊":"正在等候")); cb.await(); Thread.sleep((long)(Math.random()*10000)); System.out.println("線程" + Thread.currentThread().getName() + "即將到達集合地點2,當前已有" + (cb.getNumberWaiting()+1) + "個已經(jīng)到達," + (cb.getNumberWaiting()==2?"都到齊了,繼續(xù)走啊":"正在等候")); cb.await(); Thread.sleep((long)(Math.random()*10000)); System.out.println("線程" + Thread.currentThread().getName() + "即將到達集合地點3,當前已有" + (cb.getNumberWaiting() + 1) + "個已經(jīng)到達," + (cb.getNumberWaiting()==2?"都到齊了,繼續(xù)走啊":"正在等候")); cb.await(); } catch (Exception e) { e.printStackTrace(); } } }; service.execute(runnable); } service.shutdown(); } }
運行結(jié)果如下:
線程pool-1-thread-3即將到達集合地點1,當前已有1個已經(jīng)到達,正在等候 線程pool-1-thread-1即將到達集合地點1,當前已有2個已經(jīng)到達,正在等候 線程pool-1-thread-2即將到達集合地點1,當前已有3個已經(jīng)到達,都到齊了,繼續(xù)走啊 線程pool-1-thread-3即將到達集合地點2,當前已有1個已經(jīng)到達,正在等候 線程pool-1-thread-1即將到達集合地點2,當前已有2個已經(jīng)到達,正在等候 線程pool-1-thread-2即將到達集合地點2,當前已有3個已經(jīng)到達,都到齊了,繼續(xù)走啊 線程pool-1-thread-1即將到達集合地點3,當前已有1個已經(jīng)到達,正在等候 線程pool-1-thread-3即將到達集合地點3,當前已有2個已經(jīng)到達,正在等候 線程pool-1-thread-2即將到達集合地點3,當前已有3個已經(jīng)到達,都到齊了,繼續(xù)走啊
如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
Java中final關(guān)鍵字和final的4種用法
這篇文章主要給大家分享的是?Java中final關(guān)鍵字和final的4種用法修飾類、修飾方法、修飾變量、修飾參數(shù),下面文章具有一定的參考價值,需要的小伙伴可以參考一下2021-11-11NoHttpResponseException問題排查解決記錄分析
這篇文章主要為大家介紹了NoHttpResponseException問題排查解決記錄分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08深入理解Java中Filter的作用種類及應(yīng)用場景
Filter(過濾器)是Java Web中的一種重要組件,可以對請求和響應(yīng)進行攔截處理,對數(shù)據(jù)進行過濾和處理。Filter可以實現(xiàn)許多功能,如:鑒權(quán)、日志記錄、字符編碼轉(zhuǎn)換、數(shù)據(jù)壓縮、請求重定向等等2023-04-04Mybatis反射核心類Reflector的實現(xiàn)
本文主要介紹了Mybatis反射核心類Reflector的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11