多线程吧 关注:724贴子:406
  • 1回复贴,共1

请教大佬们一个问题,为啥我这个还是阻塞执行的

只看楼主收藏回复

我想要实现一个遍历获取文件内容的功能,但是解析文件太慢,想搞成异步的,理想的执行结果为System瞬间输出从0到文件总数不阻塞,解析功能异步执行,结果现在感觉从0到文件总数输出会因为文件解析的问题发生阻塞,请大佬们指点一下,谢谢!
while (true){
if (atomicInteger.get() >= files.length) {
break;
}
System.out.println(atomicInteger.get());
CompletableFuture<Article> future = CompletableFuture.supplyAsync(new Supplier<Article>() {
@Override
public Article get() {
xxxxxxx
解析文件
xxxxxxx
return article;
}
}, service);
articleList.add(future.get());
atomicInteger.getAndIncrement();
}


1楼2020-06-12 10:38回复
    System.out.println(atomicInteger.get());
    System.out.println 这个方法内部有sychronized代码块


    IP属地:河北2楼2021-02-22 16:40
    回复