本篇內(nèi)容介紹了“Java的Future多線程模式怎么使用”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),懷柔企業(yè)網(wǎng)站建設(shè),懷柔品牌網(wǎng)站建設(shè),網(wǎng)站定制,懷柔網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,懷柔網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
在Java5后,提供了大量處理多線程的接口,以前只是簡單的使用其線程池,最近發(fā)現(xiàn)Future模式也有。
只貼出了部分代碼:
定義池:
private static final ExecutorService worker = Executors.newFixedThreadPool(N);// 線程池 private static List<Future<?>> futureList = new ArrayList<Future<?>>();// 工作中的線程
使用線程池:
futureList.add(worker.submit(this));
結(jié)束線程:
// 結(jié)束線程池中的線程執(zhí)行(中斷) public static void cancel() { for (Future<?> f : futureList) { f.cancel(true); } }
注:Future為線程的執(zhí)行結(jié)果票據(jù),當(dāng)使用Callable方式執(zhí)行時可以得到線程的執(zhí)行結(jié)果f.get(),同時也可以控制某線程的結(jié)束和執(zhí)行狀態(tài)。當(dāng)使用Runnable方式執(zhí)行時,得到結(jié)果是空,但也可以對線程進(jìn)行控制。
補(bǔ)充:
應(yīng)該是調(diào)用了線程的中斷方法Thread.currentThread().interrupt();但并不像stop方法那樣立即結(jié)束掉子線程,而是改變了中斷的信號量Thread.interrupted(),在阻塞的線程會拋出InterruptedException異常,但是在非阻塞的條件下子線程會繼續(xù)執(zhí)行,需要在循環(huán)中自己判斷信號量來拋出異常。
“Java的Future多線程模式怎么使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
網(wǎng)站標(biāo)題:Java的Future多線程模式怎么使用
當(dāng)前網(wǎng)址:http://m.rwnh.cn/article46/psgjeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、品牌網(wǎng)站設(shè)計(jì)、定制開發(fā)、企業(yè)建站、搜索引擎優(yōu)化、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)