ThreadPoolExecutor的invokeAny方法会返回第一个完成的任务的结果,与之对应的是invokeAll方法,返回的是所有任务的执行结果。主线程会阻塞,一直到所有任务都执行完毕。 我们总结下,想要等待所有任务都完成并且开始处理结果到底有几种办法。
月份:2018年4月
认识ExecutorCompletionService返回最快的结果
场景: 我们用多线程来做一次搜索,一共有5个搜索引擎可用,我们运行多线程程序,哪个搜索引擎最先返回搜索结果就用哪个结果,剩余的4个结果已经不重要了,可以放弃了。这种场景可用ThreadPoolExecutor.invokeAny方法。
继续阅读“认识ExecutorCompletionService返回最快的结果”
Java里的Join的执行顺序问题
最近在看Java多线程的同步工具,正好看到了CountDownLatch和Join的区别,看到main线程里join的调用,写了几个例子,帮助
理解join的执行。