Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java异步处理任务

作者:若离   发布日期:2026-07-05   浏览:63

// 异步处理任务示例代码

import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;

public class AsyncTaskExample {

    // 模拟一个耗时任务
    public static String longRunningTask() {
        try {
            Thread.sleep(2000); // 模拟耗时操作
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        return "任务完成";
    }

    // 使用CompletableFuture进行异步处理
    public static void asyncTaskWithCompletableFuture() {
        // 创建一个CompletableFuture来异步执行任务
        CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {
            return longRunningTask();
        });

        // 当任务完成时,打印结果
        future.thenAccept(result -> {
            System.out.println("异步任务结果: " + result);
        });

        // 防止主线程提前结束
        try {
            future.get(); // 等待异步任务完成
        } catch (InterruptedException | ExecutionException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        asyncTaskWithCompletableFuture();
    }
}

解释说明:

  1. longRunningTask 方法:模拟一个耗时的任务,使用 Thread.sleep 来模拟耗时操作,并返回一个字符串表示任务完成。

  2. asyncTaskWithCompletableFuture 方法

    • 使用 CompletableFuture.supplyAsync 来异步执行 longRunningTask 方法。
    • supplyAsync 会在一个单独的线程中执行传入的 lambda 表达式,并返回一个 CompletableFuture 对象。
    • thenAccept 方法用于在任务完成后处理结果,这里我们简单地将结果打印出来。
    • future.get() 用于阻塞主线程,直到异步任务完成。这样可以确保主线程不会在异步任务完成之前结束。
  3. main 方法:调用 asyncTaskWithCompletableFuture 方法来启动异步任务。

这段代码展示了如何使用 Java 的 CompletableFuture 来进行异步任务处理,并等待任务完成以获取结果。

上一篇:java list 删除元素

下一篇:java序列化和反序列化原理

大家都在看

java url decode

java判断是windows还是linux

java原始数据类型

java连接数据库的代码

java date类型比较大小

java djl

ubuntu 卸载java

es java api

java常用的设计模式有哪些

java list 查找

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站