基于Java Callable接口实现线程代码实例

2025-05-29 0 22

实现Callable接口(jdk8新特性)

可以获得线程的返回值

*前两种方式没有返回值,因为run方法返回void

创建一个未来任务类对象 Futrue task = new Future(Callable<>);重写call()方法    可以使用匿名内部类方式

task.get()方法获取线程返回结果

get方法执行会导致当前方法阻塞 效率较低

代码如下

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30
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");

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持快网idc。

原文链接:https://www.cnblogs.com/llcy/p/13468394.html

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 基于Java Callable接口实现线程代码实例 https://www.kuaiidc.com/118627.html

相关文章

发表评论
暂无评论