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

java异步执行

作者:昔日暖阳   发布日期:2026-04-09   浏览:24

// Java 异步执行示例代码

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

public class AsyncExample {

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

    // 异步执行方法
    public static void asyncMethod() {
        // 使用 CompletableFuture 来实现异步操作
        CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {
            return longRunningTask(); // 异步执行耗时任务
        });

        // 注册回调函数,在任务完成后执行
        future.thenAccept(result -> {
            System.out.println("异步任务结果: " + result);
        });

        // 主线程继续执行其他任务
        System.out.println("主线程继续执行其他任务");

        // 阻塞主线程,等待异步任务完成(仅用于演示)
        try {
            future.get(); // 等待异步任务完成并获取结果
        } catch (InterruptedException | ExecutionException e) {
            e.printStackTrace();
        }
    }

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

解释说明:

  1. longRunningTask 方法:模拟一个耗时的任务,使用 Thread.sleep(2000) 来模拟 2 秒的延迟。
  2. asyncMethod 方法:使用 CompletableFuture.supplyAsync 来异步执行 longRunningTask 方法。supplyAsync 会将任务提交给 ForkJoinPool 共享线程池中的某个工作线程来执行。
  3. thenAccept 方法:注册一个回调函数,在异步任务完成后执行,输出任务的结果。
  4. future.get():阻塞主线程,等待异步任务完成并获取结果(仅用于演示目的,实际应用中通常不需要阻塞主线程)。
  5. 主线程继续执行:在异步任务执行的同时,主线程可以继续执行其他任务,不会被阻塞。

这个例子展示了如何使用 CompletableFuture 实现异步任务的执行,并通过回调函数处理任务完成后的结果。

上一篇:java 读取本地文件

下一篇:java bitset

大家都在看

java url decode

java判断是windows还是linux

java连接数据库的代码

java date类型比较大小

java djl

ubuntu 卸载java

es java api

java list 查找

java 解压rar

java读取excel中的图片

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

Laravel 中文站