龙空技术网

java实现多线程的第三种方式Callable

小瓜瓜666 68

前言:

目前我们对“java多线程callable”可能比较关注,看官们都需要学习一些“java多线程callable”的相关知识。那么小编也在网上汇集了一些有关“java多线程callable””的相关知识,希望我们能喜欢,兄弟们快快来了解一下吧!

通常我们创建线程有两种方式,1、直接继承Thread类。2、实现Runnable接口。

这两种方式都有一个缺陷:在执行完成任何之后无法获取执行结果。

如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。

JDK1.5开始,就提供了Callable和Future,通过它们可以在线程任务执行完毕之后得到执行的结果。

我们看下代码具体实现:

通过实现Callable接口,创建线程

Callable结果创建线程总结:

1、Callable结果不能直接传给Thread构造方法来创建线程,需要通过中间类FutureTask来完成,FutureTask继承了结果Runnable,将实现Callable结果的实现类通过构造方法的参数传给FutureTask类,就可以创建线程。

2、FutureTask.get():这个方法用来获取执行结果,这个方法会产生阻塞,会一直等到任务执行完毕才返回。这行代码一般放到最后。

标签: #java多线程callable