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

java异步处理

作者:狂刀血斧   发布日期:2025-09-02   浏览:124

// 异步处理示例代码

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 asyncTask() throws ExecutionException, InterruptedException {
        // 使用CompletableFuture来异步执行任务
        CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {
            return longRunningTask();
        });

        // 打印当前线程信息,表明主线程没有被阻塞
        System.out.println("主线程在做其他事情...");

        // 等待异步任务完成并获取结果
        String result = future.get(); // 这里会阻塞直到任务完成
        System.out.println(result);
    }

    public static void main(String[] args) {
        try {
            asyncTask();
        } catch (ExecutionException | InterruptedException e) {
            e.printStackTrace();
        }
    }
}

解释说明:

  1. longRunningTask:模拟一个耗时任务,使用 Thread.sleep 来模拟耗时操作。
  2. asyncTask:使用 CompletableFuture.supplyAsync 方法来异步执行任务。supplyAsync 会在一个新的线程中执行传入的 Callable,并且返回一个 CompletableFuture 对象。
  3. future.get():等待异步任务完成并获取结果。这里会阻塞主线程,直到异步任务完成。
  4. 主线程继续工作:在等待异步任务完成的同时,主线程可以继续执行其他任务,避免被阻塞。

通过这种方式,Java 可以实现非阻塞的异步任务处理,提高程序的并发性能。

上一篇:hashmap java

下一篇:java使用redis

大家都在看

java连接数据库的代码

java djl

ubuntu 卸载java

java读取excel中的图片

java新建

java sort用法

java collections.sort

java file类的方法

java发送qq邮件

java 判断

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

Laravel 中文站