FutureTask:

三种状态:

多线程----FutureTask(异步计算结果)

多线程----FutureTask(异步计算结果)


FutureTask.get()/ cancel()方法:


多线程----FutureTask(异步计算结果)


多线程----FutureTask(异步计算结果)



使用:  

   因为实现了Runnable接口,则也可以交给Executor执行~

多线程----FutureTask(异步计算结果)


代码实例:

多线程----FutureTask(异步计算结果)


多线程----FutureTask(异步计算结果)

多线程----FutureTask(异步计算结果)


实现原理:基于AQS(队列同步器) 

多线程----FutureTask(异步计算结果)


多线程----FutureTask(异步计算结果)


实现原理图:

多线程----FutureTask(异步计算结果)


多线程----FutureTask(异步计算结果)



FutureTask.get()方法的底层源码:

多线程----FutureTask(异步计算结果)


FutureTask.run()方法的底层源码:


多线程----FutureTask(异步计算结果)


FutureTask的级联唤醒图:


多线程----FutureTask(异步计算结果)


多线程----FutureTask(异步计算结果)


多线程----FutureTask(异步计算结果)

相关文章: