基于Java Callable接口實(shí)現(xiàn)線程代碼實(shí)例
實(shí)現(xiàn)Callable接口(jdk8新特性)
可以獲得線程的返回值
*前兩種方式?jīng)]有返回值,因?yàn)閞un方法返回void
創(chuàng)建一個(gè)未來(lái)任務(wù)類對(duì)象 Futrue task = new Future(Callable<>);重寫call()方法 可以使用匿名內(nèi)部類方式
task.get()方法獲取線程返回結(jié)果
get方法執(zhí)行會(huì)導(dǎo)致當(dāng)前方法阻塞 效率較低
代碼如下
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
public class Test_13 {
public static void main(String[] args) {
System.out.println(Thread.currentThread().getName() + "begin");
FutureTask task = new FutureTask(new Callable() {
@Override
public Object call() throws Exception {
System.out.println(Thread.currentThread().getName() + "start");
Thread.sleep(1000 * 5);
int a = 100;
int b = 200;
System.out.println(Thread.currentThread().getName() + "over");
return a + b;
}
});
Thread thread = new Thread(task);
thread.start();
try {
System.out.println(task.get());
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + "end");
}
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Java對(duì)象級(jí)別與類級(jí)別的同步鎖synchronized語(yǔ)法示例
- 深入了解Java?Synchronized鎖升級(jí)過(guò)程
- Java synchronized同步方法詳解
- Java多線程之synchronized同步代碼塊詳解
- Java synchronized偏向鎖的核心原理詳解
- Java synchronized輕量級(jí)鎖的核心原理詳解
- Java Callable接口實(shí)現(xiàn)細(xì)節(jié)詳解
- 詳解Java Callable接口實(shí)現(xiàn)多線程的方式
- Java 深入淺出分析Synchronized原理與Callable接口
相關(guān)文章
SpringBoot Starter自定義之創(chuàng)建可復(fù)用的自動(dòng)配置模塊方式
本文將詳細(xì)介紹如何設(shè)計(jì)和實(shí)現(xiàn)一個(gè)自定義的Spring Boot Starter,幫助讀者掌握這一強(qiáng)大技術(shù),提升代碼復(fù)用性和開發(fā)效率,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04
MyBatis-plus更新對(duì)象時(shí)將字段值更新為null的實(shí)現(xiàn)方式
mybatis-plus在執(zhí)行更新操作,當(dāng)更新字段為 空字符串 或者 null 的則不會(huì)執(zhí)行更新,如果要將指定字段更新null,可以通過(guò)以下三種方式實(shí)現(xiàn),感興趣的小伙伴跟著小編一起來(lái)看看吧2023-10-10
java實(shí)現(xiàn)輕輕松松控制臺(tái)斗地主的示例代碼
這篇文章主要介紹了java實(shí)現(xiàn)輕輕松松控制臺(tái)斗地主,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
基于Java的Spring框架來(lái)操作FreeMarker模板的示例
這篇文章主要介紹了基于Java的Spring框架來(lái)操作FreeMarker模板的示例,講到了用于進(jìn)行web模板文件的插值操作等例子,需要的朋友可以參考下2016-03-03

