Runnable没有办法获取执行结果,可以使用Callable。
第一步、实现接口
class CallableTest implements Callable<String>{
@Override
public String call() throws Exception {
Thread.sleep(1000*5);
String str = "hello callable";
System.out.println("call :" + str);
return str;
}
}
第二步、在main方法调用
CallableTest callable = new CallableTest();
FutureTask<String> future = new FutureTask<String>(callable);
Thread thread2 = new Thread(future);
thread2.start();
第三步、通过FutureTask获取返回数据
try {
String str = future.get();
System.out.println("get:" + str);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}