Future

发布时间:2023-01-27 10:00

1、future是如何做到在线程执行完之后拿到执行结果的?
FutureTask是一个Runnable,FutureTask接受一个Callable,当把FutureTask当作Thread的target,去执行一个线程调用(start),start()之后最终会调用FutureTask的run方法,run方法又会调用Callable的call方法,call方法执行完,会把结果放入到一个FutureTask的一个returnObject中。
调用FutureTask时是怎么做到执行完才拿到这个结果呢?很简单生产者消费者问题,get的时候判断这个returnObject是否为null,如果为null则wait(),当上面的call方法执行完并把结果放入returnObject后,调用notify唤醒等待的线程就能拿到执行结果了。

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号