两个有依赖关系的用例怎么多线程?

被问到一个问题,如果多线程实现的两个用例之间有依赖关系,比如B中间某一步要用到A的结果,那么能用多线程实现么?如果能,怎么实现?
我回答说到这一步的时候判断A出没出结果,没出就sleep跳过B的执行,但是好像对方反问一句那效率可能还不如串行,如果A错误了不能返回结果你B就一直sleep?那么有什么的方式解决这个问题啊?还是说有强依赖关系的用例就不能多线程?
#技术栈#
全部评论
看是什么依赖关系,第一个想到的不应该是CountDownLatch吗,然后是线程间通信的几个方式,然后再想到异步计算有返回值的futuretask吧,子线程完成某件任务后,把得到的结果回传给主线程。不知道有没有理解错题意
点赞 回复
分享
发布于 2019-08-23 11:17
用ComplableFuture可以吗
点赞 回复
分享
发布于 2019-08-23 10:59
联想
校招火热招聘中
官网直投
设置一个bool  a出结果了 置为true .在b需要结果的地方判断这个bool false就堵塞住,直到a出结果再唤醒一下
点赞 回复
分享
发布于 2019-08-23 11:03
结果放阻塞队列里,或者futuretask之类的
点赞 回复
分享
发布于 2019-08-23 11:03
互斥锁加条件变量
点赞 回复
分享
发布于 2019-08-23 11:36
强依赖为啥不串行。。。
点赞 回复
分享
发布于 2019-08-23 12:03

相关推荐

点赞 8 评论
分享
牛客网
牛客企业服务