【发布时间】:2015-03-05 03:02:46
【问题描述】:
为什么即使子任务完成,以下任务也永远不会完成? miner.mine 做了一些我可以看到已完成的数据库插入,但提示永远不会回来。
private void run(Path path) {
findAllFilesInDirectory(path).forEach(
p -> ForkJoinTask.adapt(() -> miner.mine(p)).invoke());
}
private Stream<Path> findAllFilesInDirectory(final Path path) {
try {
return find(path, 1,
(p, fileAttributes) -> fileAttributes.isRegularFile());
} catch (IOException e) {
LOGGER.error("There was an error processing path: {}.", path);
return Stream.empty();
}
}
【问题讨论】:
标签: multithreading concurrency java-8 fork-join