代码之家  ›  专栏  ›  技术社区  ›  Hasan Can Saral

以完全的未来模仿所有的行为

  •  2
  • Hasan Can Saral  · 技术社区  · 7 年前

    我有三个 CompletableFuture 详情如下:

    public Object someMethod(){
    
        CompletableFuture future1 = CompletableFuture.allOf(futureArray1).exceptionally(this::handleException);
        CompletableFuture future2 = CompletableFuture.runAsync(() -> 
            // Here I do something needed for futureArray2 to run );
        CompletableFuture future3 = CompletableFuture.allOf(futureArray2).exceptionally(this::handleException);
    }
    

    我试图实现的是当调用该方法时:

    1. 全部 futures1 要运行(可以同时运行所有线程),请连接到主线程,
    2. someMethod 返回,
    3. future2
    4. 全部 futures3 追赶 未来2 完成(同样,可以同时运行所有这些,只需要 未来2 完成)。

    所以基本上,如果我有 thenAllOf 方法 完全的未来 ,那就解决了我的问题。我如何模仿:

    public Object someMethod(){
    
        CompletableFuture.allOf(futureArray1).join();
        CompletableFuture.runAsync() -> // Do something for futureArray2).thenAllOf(futureArray2);
    }
    
    0 回复  |  直到 7 年前