真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java怎么實(shí)現(xiàn)Callable接口創(chuàng)建線程類

本篇內(nèi)容介紹了“java怎么實(shí)現(xiàn)Callable接口創(chuàng)建線程類”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

公司主營業(yè)務(wù):成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出信豐免費(fèi)做網(wǎng)站回饋大家。

實(shí)現(xiàn) Callable 接口創(chuàng)建線程類

從 Java5 開始就提供了 Callable 接口,該接口是 Runnable 接口的增強(qiáng)版,Callable 接口提供一個(gè) call() 方法作為線程執(zhí)行體,call()方法可以有返回值,call() 方法可以聲明拋出異常。

  • boolean cancel(boolean may) 試圖取消該 Future 里關(guān)聯(lián)的 Callable 任務(wù)。

  • V get() 返回 Call 任務(wù)里 call() 方法的返回值。調(diào)用該方法會(huì)照成線程阻塞,必須等待子線程結(jié)束后才會(huì)得到返回值。

  • V get(long timeout,TimeUnit unit) 返回 Call 任務(wù)里 call() 方法的返回值。該方法讓程序最多阻塞 timeout 和 unit 指定的時(shí)間,如果經(jīng)過指定的時(shí)間,如果經(jīng)過指定的時(shí)間依然沒有返回值,將會(huì)拋出 TimeoutException 異常。

  • boolean isCancelled() 如果在 Callable 任務(wù)正常完成前被取消,則返回 true。

  • boolean isDone() 如果 Callable 任務(wù)已完成,則返回 true。

Runnable的實(shí)現(xiàn)步驟:

  1. 創(chuàng)建 Callable 接口的實(shí)現(xiàn)類,并實(shí)現(xiàn) call() 方法,該 call() 方法作為線程的執(zhí)行體,call() 方法有返回值。

  2. 使用 FutrueTask 類包裝 Callable 對(duì)象。

  3. 使用 FutrueTask 對(duì)象作為Thread 對(duì)象的 target 創(chuàng)建并啟動(dòng)新線程。

  4. 啟用 FutrueTask 對(duì)象的 get() 方法來獲得子線程的返回值。

public class CallableDemo implements Callable {
   public static void main(String args[]) {
       FutureTask futureTask = new FutureTask(new CallableDemo());
       new Thread(futureTask).start();
       try {
           System.out.println("子線程返回值:" + futureTask.get());
       } catch (InterruptedException e) {
           e.printStackTrace();
       } catch (ExecutionException e) {
           e.printStackTrace();
       }
       if (futureTask.isDone()) {
           System.out.println("線程結(jié)束");
       }
   }

   @Override
   public Integer call() throws Exception {
       System.out.println("線程開始");
       int ss = 0;
       for (int i = 0; i < 20; i++) {
           ss += i;
       }
       return ss;
   }
}

“java怎么實(shí)現(xiàn)Callable接口創(chuàng)建線程類”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!


當(dāng)前題目:java怎么實(shí)現(xiàn)Callable接口創(chuàng)建線程類
文章出自:http://weahome.cn/article/jsdcii.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部