本篇內(nèi)容主要講解“JUC線程如何實(shí)現(xiàn)Callable接口”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“JUC線程如何實(shí)現(xiàn)Callable接口”吧!
創(chuàng)新互聯(lián)建站專注于策勒企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),商城網(wǎng)站建設(shè)。策勒網(wǎng)站建設(shè)公司,為策勒等地區(qū)提供建站服務(wù)。全流程按需制作網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)
Java 5.0 在 java.util.concurrent 提供了一個(gè)新的創(chuàng)建執(zhí)行線程的方式:Callable 接口
Callable 接口類似于 Runnable,兩者都是為那些其實(shí)例可 能被另一個(gè)線程執(zhí)行的類設(shè)計(jì)的。但是 Runnable 不會(huì)返 回結(jié)果,并且無法拋出經(jīng)過檢查的異常。
Callable 需要依賴FutureTask ,F(xiàn)utureTask 也可以用作閉鎖
package com.gf.demo;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
/**
* 一、創(chuàng)建線程的方式三:實(shí)現(xiàn)Callable接口。相較于實(shí)現(xiàn) Runnable 接口的方式,方法可以有返回值,并且可以拋出異常。
*
* 二、執(zhí)行Callable 方式,需要FutureTask 實(shí)現(xiàn)類的支持,用于接受運(yùn)算結(jié)果。FutureTask 是Future接口的實(shí)現(xiàn)類
*
*/
public class TestCallable {
public static void main(String args[]){
ThreadDemo td = new ThreadDemo();
FutureTask 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 {
@Override
public Integer call() throws Exception {
int num = 0;
for (int i = 0 ; i < Integer.MAX_VALUE ; i++) {
num = num + i;
}
return num;
}
}
到此,相信大家對(duì)“JUC線程如何實(shí)現(xiàn)Callable接口”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!