日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

5、JUC--实现 Callable 接口

發(fā)布時間:2025/4/16 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 5、JUC--实现 Callable 接口 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Callable接口

? Java 5.0 在 java.util.concurrent 提供了一個新的創(chuàng)建執(zhí)行
  線程的方式:Callable 接口


? Callable 接口類似于 Runnable,兩者都是為那些其實例可
  能被另一個線程執(zhí)行的類設計的。但是 Runnable 不會返
  回結果,并且無法拋出經過檢查的異常。


? Callable 需要依賴FutureTask ,FutureTask 也可以用作閉鎖

?

?

創(chuàng)建執(zhí)行線程的方法有四種:

1、繼承Thread類或者創(chuàng)建線程類

2、通過實現(xiàn)Runable接口創(chuàng)建線程類

3、通過Callable接口

4、通過線程池創(chuàng)建線程

?

相對于Runable接口的不同:

可以使用泛型,方法可以有返回值沒并且可以拋出異常

?

?

實例:

public class TestCallabel {public static void main(String[] args) {ThreadDemoCallable tc = new ThreadDemoCallable();//此時的使用方式有些不同//1、需要FutureTask實現(xiàn)類的支持,用于接收運算結果 FutureTask<Integer> result = new FutureTask<>(tc);new Thread(result).start();//2、接收運算的結果//注意:只有上述的線程之后下方的代碼才會執(zhí)行----閉鎖try {Integer sum = result.get();System.out.println(sum);} catch (InterruptedException e) {e.printStackTrace();} catch (ExecutionException e) {e.printStackTrace();} }}//可以使用泛型 class ThreadDemoCallable implements Callable<Integer>{@Overridepublic Integer call() throws Exception {//計算整合int sum = 0;for(int i = 0;i <10;i++){sum +=i;}return sum;} }

效率高

可以實現(xiàn)和閉鎖一樣的實現(xiàn)功能

?

轉載于:https://www.cnblogs.com/Mrchengs/p/10793688.html

總結

以上是生活随笔為你收集整理的5、JUC--实现 Callable 接口的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。