啟動(dòng)線程執(zhí)行任務(wù),如果需要在任務(wù)執(zhí)行完畢之后得到任務(wù)執(zhí)行結(jié)果,可以使用從Java 1.5開(kāi)始提供的Callable和Future
下面就分析一下Callable、Future以及FutureTask的具體實(shí)現(xiàn)及使用方法
源碼分析基于JDK 1.7
一、Callable 與 Runnable
java.lang.Runnable是一個(gè)接口,只有一個(gè)run()方法
public interface Runnable { public abstract void run(); }
run()方法
的返回值是void,故在執(zhí)行完任務(wù)后無(wú)法返回任何結(jié)果
Callable是java.util.concurrent包下的,也是一個(gè)接口,也只有一個(gè)
延伸閱讀
學(xué)習(xí)是年輕人改變自己的最好方式