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(); }
