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