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

java 异步线程

作者:浪子罢了   发布日期:2026-04-05   浏览:59

// Java 异步线程示例代码

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

public class AsyncThreadExample {

    // 创建一个线程池,使用固定数量的线程
    private static final ExecutorService executor = Executors.newFixedThreadPool(10);

    public static void main(String[] args) throws Exception {
        // 提交一个异步任务,并获取 Future 对象
        Future<String> future = executor.submit(() -> {
            // 模拟耗时操作
            Thread.sleep(2000);
            return "异步任务完成";
        });

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

        // 获取异步任务的结果,如果任务未完成,则会阻塞等待
        String result = future.get();
        System.out.println(result);

        // 关闭线程池
        executor.shutdown();
    }
}

解释说明:

  1. ExecutorService:使用 Executors.newFixedThreadPool(10) 创建了一个包含 10 个线程的线程池。这允许我们并行执行多个任务。
  2. submit() 方法:提交一个实现了 Callable 接口的匿名类(或 Lambda 表达式),它会在后台线程中执行,并返回一个 Future 对象。
  3. Future 对象:用于获取异步任务的执行结果。调用 future.get() 会阻塞当前线程,直到异步任务完成并返回结果。
  4. 主线程继续执行:在提交异步任务后,主线程可以继续执行其他任务,而不会被阻塞。
  5. 关闭线程池:使用 executor.shutdown() 来优雅地关闭线程池,确保所有任务完成后线程池会被终止。

这样,你可以在不影响主线程的情况下执行耗时任务,并在任务完成后获取结果。

上一篇:java定时任务cron表达式

下一篇:java record关键字

大家都在看

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 中文站