callable如何取得异步结果?

如题,看到一个面经里的,不太明白这个问题是要怎么回答
全部评论
再接楼上的细说一下:异步结果其实被当成了一把锁,用futruetask去获取这个结果就会被阻塞,等异步结果计算结束,futuretask也就获得锁 ,阻塞状态解除。以上过程还是基于AQS那一套框架
点赞 回复 分享
发布于 2017-08-17 01:08
FutureTask吧
点赞 回复 分享
发布于 2017-08-16 22:35
最近看了一下源码,正好回答一下这个问题     其实类实现callable只是一种形式,真正起到运行作用的是callable的包装类futuretask,futuretask实现了runable接口,实现run方法的时候调用callable的call方法,可以将call的结果存储起来,而且是异步的,什么时候要结果直接get方法即可,但是有可能在获取的时候call还没有执行完,那么get可能会阻塞当前线程直到取到结果,也提供了get(long time)的形式去获取,规定时间获取不到就放弃了。
点赞 回复 分享
发布于 2017-08-16 18:39
通过Futuretask获取
点赞 回复 分享
发布于 2017-08-16 18:28

相关推荐

牛客965593684号:假的,字节hr都是不会找你内推的,直接就是同学我们约个面试?他们有权限直接捞你的。
点赞 评论 收藏
分享
雪飒:我也遇见过,我反问他有考虑来华为od吗?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务