多任务并发执行,最终返回的例子

import com.google.common.collect.ImmutableList;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture;

public class CompletableFutureWait {

    public void allTask() {
        Map<String, Object> data = new HashMap<>();

        // 任务1
        CompletableFuture task1 = task1(data);

        // 任务2
        CompletableFuture task2 = task2(data);

        awaitTermination(ImmutableList.of(task1, task2));
    }

    public CompletableFuture task1(Map<String, Object> data) {
        return CompletableFuture.runAsync(() ->{
            System.out.println("111");
            data.put("姓名", "张三");
        });
    }

    public CompletableFuture task2(Map<String, Object> data) {
        return CompletableFuture.runAsync(() -> {
            System.out.println("222");
            data.put("年龄", 13);
        });
    }


    /**
     * 等待所有任务执行结束
     */
    private void awaitTermination(List<CompletableFuture> completableFutures) {
        try {
            CompletableFuture.allOf(completableFutures.toArray(new CompletableFuture[completableFutures.size()])).get();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

你可能感兴趣的:(java,windows,服务器)