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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java中两任务并行运行_Java并行编程中的“可调用”与“可运行”任务

發布時間:2023/12/3 java 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中两任务并行运行_Java并行编程中的“可调用”与“可运行”任务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java中兩任務并行運行

當我們用Java編寫多線程應用程序時,我們傾向于使用“ Runnable ”接口來實現線程類。

您的類必須簡單地實現此接口并覆蓋run方法。

對于瑣碎的用例,我們可以通過調用“ start”方法直接啟動線程,結果將控制流委托給run方法。

但是,在大多數應用程序中,我們最終使用線程池,該線程池管理工作線程并在任務提交到池時促進任務執行。

Java提供了各種各樣的線程池,并且還允許程序員創建自己的線程池實現。

將線程任務提交給池的過程也很標準。

在某些情況下,我們可能希望我們的線程做更多的事情而不是僅僅執行一個任務。

在這種情況下,了解使用Runnable vs Callable的用例很重要。

1.從執行線程返回值

在許多情況下,您可能希望從執行線程返回一個值。

這是“可調用”任務派上用場的地方。

Java ExecutorService API允許接受Callable類型的任務,并返回“ Future”任務。

這對于某些用例可能很有用。

但是,下面給出了使用Callable的更重要的選擇之一。

2.能夠從執行線程中拋出檢查異常

Callable的重要考慮因素之一是程序員能夠從正在執行的線程中引發異常。

這可以從我們的多線程應用程序中處理異常,并可以從異常中正常恢復。

如果我們查看“調用”方法的簽名,就會發現它引發了一個通用異常–

V call()引發異常

3.其他方案

Callable接口實現也可以與FutureTask結合使用。

FutureTask類接受Callable實現。

FutureTask可以提交給線程池執行器,我們可以使用標準的Future API檢索執行結果。

下面的代碼段

public class CallableInsideFutureTask{public static void main(String[] args){ExecutorService executor = Executors.newSingleThreadExecutor();FutureTask<String> myTask = new MyTask(new CallableTest());executor.submit(myTask);try {myTask.get();} catch (Exception ex ) {ex.printStackTrace();}executor.shutdownNow();}}

在此示例中, CallableTest類必須實現Callable接口。

如果您喜歡這篇文章,請隨時在LinkedIn上進行連接。

翻譯自: https://www.javacodegeeks.com/2019/04/callable-runnable-tasks-java-concurrent-programming.html

java中兩任務并行運行

總結

以上是生活随笔為你收集整理的java中两任务并行运行_Java并行编程中的“可调用”与“可运行”任务的全部內容,希望文章能夠幫你解決所遇到的問題。

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