您好,登錄后才能下訂單哦!
本篇內容主要講解“JUC線程如何實現Callable接口”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“JUC線程如何實現Callable接口”吧!
Java 5.0 在 java.util.concurrent 提供了一個新的創建執行線程的方式:Callable 接口
Callable 接口類似于 Runnable,兩者都是為那些其實例可 能被另一個線程執行的類設計的。但是 Runnable 不會返 回結果,并且無法拋出經過檢查的異常。
Callable 需要依賴FutureTask ,FutureTask 也可以用作閉鎖
package com.gf.demo;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
/**
* 一、創建線程的方式三:實現Callable接口。相較于實現 Runnable 接口的方式,方法可以有返回值,并且可以拋出異常。
*
* 二、執行Callable 方式,需要FutureTask 實現類的支持,用于接受運算結果。FutureTask 是Future接口的實現類
*
*/
public class TestCallable {
public static void main(String args[]){
ThreadDemo td = new ThreadDemo();
FutureTask<Integer> result = new FutureTask<>(td);
new Thread( result ).start();
try {
Integer sum = result.get();
System.out.println(sum);
System.out.println("--------------------------------");
} catch (ExecutionException | InterruptedException e) {
e.printStackTrace();
}
}}
class ThreadDemo implements Callable<Integer> {
@Override
public Integer call() throws Exception {
int num = 0;
for (int i = 0 ; i < Integer.MAX_VALUE ; i++) {
num = num + i;
}
return num;
}
}
到此,相信大家對“JUC線程如何實現Callable接口”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。