需求:你和女朋友约好看复联4.此时已知以下条件:
1.你在电影院买电影票
2.女朋友在赶来的路上
3.看完电影,你想做点羞羞的事
我们把这些看成4个线程:
1.买电影票
2.等女朋友
3.一起看电影
4.看完电影KFC
可知:线程1和2是并行的,线程3的特殊性是电影不会等人的(可视为定时任务),而线程4的条件是先完成线程3.
1.将线程1和2加入线程3,并利用future.get(time, TimeUnit.MILLISECONDS)方法阻塞线程3.time为距离电影播放的时间
2.线程1和2提前完成,则等待线程3开始;如果线程1和2有一个到时间未完成,则线程3报错
3.线程4中对线程3进行future.get(),一直阻塞至电影结束,然后就可以嘿嘿嘿了
记录一个类似的案例代码:线程池使用(Callable+Future)