Callable和Runnable类似,不同的就是Callable可以返回一个结果,代码示例如下:
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;public class CallableExample {
public static void main(String[] args) {//用线程池创建一个执行对象,用于执行我们的Callable实现类
ExecutorService executor = Executors.newFixedThreadPool(1);Callable<String> task = () -> {
Thread.sleep(2000);
return "Hello from Callable!";
};//提交执行
Future<String> future = executor.submit(task);
try {
//获取结果
String result = future.get();
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}executor.shutdown();
}
}