小鸭子的学习笔记duck

Duck Blog

唐如飞

( ^∀^)/欢迎\( ^∀^)

79 文章数
14 评论数

Completable任务编排

tangrufei
2023-11-29 / 0 评论 / 127 阅读 / 0 点赞
package com.demo;

import org.junit.Test;


import java.util.concurrent.CompletableFuture;



public class CompletableFutureTest {

    public static void main(String[] args) {
        testAsyncTaskCompletion();
    }
    public static void testAsyncTaskCompletion() {
        // 创建一个 CompletableFuture
        CompletableFuture<Void> future = new CompletableFuture<>();

        // 定义一个 Runnable 任务
        Runnable task = () -> {
            // 模拟任务的耗时操作
            for (int i = 0; i < 1000; i++) {
                System.out.println("我是第"+0);
            }

            // 任务完成后,将 CompletableFuture 标记为完成
            future.complete(null);
        };
        Runnable task1 = () -> {
            // 模拟任务的耗时操作
            for (int i = 0; i < 1000; i++) {
                System.out.println("我是第"+1);
            }

            // 任务完成后,将 CompletableFuture 标记为完成
            future.complete(null);
        };
        Runnable task2 = () -> {
            // 模拟任务的耗时操作
            for (int i = 0; i < 1000; i++) {
                System.out.println("我是第"+2);
            }

            // 任务完成后,将 CompletableFuture 标记为完成
            future.complete(null);
        };

        // 在一个新线程中执行任务
        Thread thread = new Thread(task);
        thread.start();

        // 监听任务完成
        future.thenRun(task1).thenRun(task2);
        // 等待任务完成


        // 在测试中断言任务已完成
    }
}
文章不错,扫码支持一下吧~
上一篇 下一篇
评论
来首音乐
光阴似箭
今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月