ExecutorService service = Executors.newCachedThreadPool();
Future<String> fu = service.submit(new Callable<String>() {
@Override
public String call() throws Exception {
// TODO Auto-generated method stub
Thread.sleep(2000);
return "收到了";
}
});
System.out.println("发送消息");
System.out.println("返回结果是:"+fu.get(20000,TimeUnit.MILLISECONDS));
发送消息
返回结果是:收到了
Future用于表示线程执行的返回结果信息。Callable表示异步执行实体对象。
以上代码,主线程需要等待Callable执行并返回结果,当然是不是一定要等待Callable取决于参数设置。