谈谈对callable 和 future的理解

2018-06-18  本文已影响0人  半只笔芯

在java中,实现线程的方式不仅仅有runnable接口,Thread类,还有callable接口,但是runnable接口和thread类中,都是没有返回值的。

但是在callable接口的实现中,是可以有值返回的;

经过代码的编写,有两种方法可以取出返回值

具体方法请看如下代码

分别使用 FutureTask 和 线程池完成回调。

源码分析

首先简历线程池可以发现,底层实现是有同步队列的,也就是说线程等待是在队列中完成的

ThreadFactory,线程的制造工厂,线程池等的线程创建都和这个类有关

ThreadPoolExecutor 导入的包

里面可以看到有abstractqueuedSynchronizer aqs,和lock锁,还有condition条件控制类

接下来进一步观察线程池是底层怎么实现线程的切换,和锁的应用

上一篇 下一篇

猜你喜欢

热点阅读