Java执行器在任务完成之前退出 公共类MyCallable实现可调用{ @凌驾 公共布尔调用(){ while(true){ 试一试{ […东西] }捕获(例外e){ System.out.println(“错误!”); } } } } 公共静态void main(字符串[]args)引发异常{ int parallellcallables=6; ThreadFactory namedThreadFactory=新的ThreadFactoryBuilder() .setNameFormat(“抓取器线程-%d”).build(); facebookInfoGrabberExecutor=Executors.newFixedThreadPool(parallelCallables,namedThreadFactory); List futures=facebookInfoGrabberExecutor.invokeAll(任务); System.out.println(“不可访问”); }

Java执行器在任务完成之前退出 公共类MyCallable实现可调用{ @凌驾 公共布尔调用(){ while(true){ 试一试{ […东西] }捕获(例外e){ System.out.println(“错误!”); } } } } 公共静态void main(字符串[]args)引发异常{ int parallellcallables=6; ThreadFactory namedThreadFactory=新的ThreadFactoryBuilder() .setNameFormat(“抓取器线程-%d”).build(); facebookInfoGrabberExecutor=Executors.newFixedThreadPool(parallelCallables,namedThreadFactory); List futures=facebookInfoGrabberExecutor.invokeAll(任务); System.out.println(“不可访问”); },java,parallel-processing,executorservice,hazelcast,Java,Parallel Processing,Executorservice,Hazelcast,尽管这似乎是不可能的,但我的程序可以打印“无法访问”。 当它到达该行时,所有进程都在等待。 我使用hazelcast,这可能是罪魁祸首,但我仍然不知道。您需要关闭您的执行器来完成所有任务 public class MyCallable implements Callable<Boolean> { @Override public Boolean call() { while(t

尽管这似乎是不可能的,但我的程序可以打印“无法访问”。 当它到达该行时,所有进程都在等待。
我使用hazelcast,这可能是罪魁祸首,但我仍然不知道。您需要关闭您的
执行器来完成所有任务

        public class MyCallable implements Callable<Boolean> {        
            @Override
            public Boolean call() {
              while(true){
                 try{
                  [... stuff]
                 }catch(Exception e){
                   System.out.println("Error!");
                 }
              }
            }
        }

    public static void main(String[] args) throws Exception {
                int parallelCallables = 6;        
                ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
                        .setNameFormat("Grabber-thread-%d").build();
                facebookInfoGrabberExecutor = Executors.newFixedThreadPool(parallelCallables, namedThreadFactory);
                List<Future<Boolean>> futures = facebookInfoGrabberExecutor.invokeAll(tasks);
                System.out.println("unreachable");
    }
intparallelcallables=6;
ThreadFactory namedThreadFactory=新的ThreadFactoryBuilder()
.setNameFormat(“抓取器线程-%d”).build();
ExecutorService facebookInfoGrabberExecutor=Executors.newFixedThreadPool(parallelCallables,namedThreadFactory);
List futures=facebookInfoGrabberExecutor.invokeAll(任务);
//添加这个!!!
facebookInfoGrabberExecutor.shutdown();
而(!facebookInfoGrabberExecutor.WaitiveTermination(1,时间单位.分钟)){
System.out.println(“等待”);
}
System.out.println(“全部完成”);
    int parallelCallables = 6;
    ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
            .setNameFormat("Grabber-thread-%d").build();
    ExecutorService facebookInfoGrabberExecutor = Executors.newFixedThreadPool(parallelCallables, namedThreadFactory);
    List<Future<Boolean>> futures = facebookInfoGrabberExecutor.invokeAll(tasks);
    // Add this!!!
    facebookInfoGrabberExecutor.shutdown();
    while (!facebookInfoGrabberExecutor.awaitTermination(1, TimeUnit.MINUTES)) {
        System.out.println("Waiting");
    }
    System.out.println("All done.");