for
list.forEach(fileSync -> {
executor.execute(() -> startSyncFile(fileSync));
});
放在循环体里面,我循环长度是1300,执行了1100就停止不执行了,我打印了线程信息,发现执行到1100左右当前就没有线程在执行了
for
list.forEach(fileSync -> {
executor.execute(() -> startSyncFile(fileSync));
});
放在循环体里面,我循环长度是1300,执行了1100就停止不执行了,我打印了线程信息,发现执行到1100左右当前就没有线程在执行了
可以试试
1.检查一下你的executor线程队列配置和拒绝策略,有可能是线程队列配置过小导致有些任务被丢弃了
2.查看有没有哪个地方调用了executor的shutDownNow方法,导致线程池被关闭
3.你看到的只执行1100个左右有可能是成功执行的,另外的200个有可能是执行了,只是执行失败了,所以你看不到效果,加些日志看看