Callable 使用
Posted wscy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Callable 使用相关的知识,希望对你有一定的参考价值。
# Callable 使用
一、问题
继承 Thread
类或者实现 Runnable
接口,run()
方法返回类型是void
,即启动的线程任务无返回结果。
二、解决
实现
Callable
接口public class TaskWithResult implements Callable<String> { private int id; public TaskWithResult(int id) { this.id = id; } public String call() { return "result of TaskWithResult " + id; } }
ps:
Callable<String>
中String
是线程任务返回结果的数据类型,与call()
方法返回类型对应。执行线程任务
ExecutorService exec = Executors.newCachedThreadPool(); ArrayList<Future<String>> results = new ArrayList<Future<String>>(); for (int i = 0; i < 10; i++) { // ExecutorService.submit()产生Future对象 results.add(exec.submit(new TaskWithResult(i))); }
Future对象
isDone()
,判断任务是否执行完成。get()
,获取任务执行结果,任务未完成则阻塞。
以上是关于Callable 使用的主要内容,如果未能解决你的问题,请参考以下文章