多线程Future的缺点
解决方法:
Future接口调用get()方法取得处理的结果值时是阻塞性的,如果调用Future对象的get()方法时,如果这个线程还没执行完成,就一直主线程main阻塞到此线程完成为止,就算和它同时进行的其它线程已经执行完了,也要等待这个耗时线程执行完才能获取结果,大大影响运行效率。那么使用多线程就没什么意义了。幸运的是JDK并发包也提供了CompletionService接口可以解决这个问题,它的take()方法哪个线程先完成就先获取谁的Futrue对象。
本文链接:http://www.yayihouse.com/yayishuwu/chapter/1545