黑马程序员技术交流社区
标题:
【上海校区】创建有返回值的线程(Callable+FutureTask)
[打印本页]
作者:
不二晨
时间:
2019-2-22 16:37
标题:
【上海校区】创建有返回值的线程(Callable+FutureTask)
代码如下:
String callableReturnValue = null;
Callable<String> callable = new Callable<String>() {
@Override
public String call() throws Exception {
Thread.sleep(1000);
return "线程的返回值";
}
};
FutureTask<String> task = new FutureTask<String>(callable);
//任务执行好了则取值,否则取消任务。
if (task.isDone()) {
callableReturnValue = task.get();//获得线程的返回值
} else {
task.cancel(true);
}
if(task.isCancelled()){
System.out.println("任务被取消了!");
}else{
System.out.println(callableReturnValue);
}
其他方案:Callable+线程池+Future
ExecutorService executorService = Executors.newCachedThreadPool();
Future<String> future1 = executorService.submit(callable);
Thread.sleep(1000);
callableReturnValue = future1.get();
---------------------
【转载,仅作分享,侵删】
作者:river66
原文:
https://blog.csdn.net/river66/article/details/87695189
版权声明:本文为博主原创文章,转载请附上博文链接!
作者:
不二晨
时间:
2019-2-26 15:33
奈斯,感谢分享
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2