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

java futuretask

作者:看悲伤的曲   发布日期:2025-06-27   浏览:62

import java.util.concurrent.*;

public class FutureTaskExample {
    public static void main(String[] args) throws InterruptedException, ExecutionException {
        // 创建一个Callable任务,该任务会在执行后返回一个结果
        Callable<Integer> task = () -> {
            Thread.sleep(2000); // 模拟耗时操作
            return 123; // 返回结果
        };

        // 创建一个FutureTask对象,传入Callable任务
        FutureTask<Integer> futureTask = new FutureTask<>(task);

        // 创建一个线程并启动它
        Thread thread = new Thread(futureTask);
        thread.start();

        // 主线程可以继续执行其他操作
        System.out.println("主线程在等待结果...");

        // 获取任务的执行结果,如果任务还没有完成,则会阻塞直到任务完成
        Integer result = futureTask.get();
        System.out.println("任务执行结果: " + result);
    }
}

解释说明:

  1. Callable接口Callable接口类似于Runnable,但它可以返回一个结果,并且可以抛出异常。这里我们定义了一个简单的Callable任务,它模拟了一个耗时操作(Thread.sleep(2000)),并在完成后返回一个整数结果(123)。

  2. FutureTask类FutureTask是一个包装类,它可以包装一个CallableRunnable任务,并提供Future接口的功能。通过FutureTask,我们可以获取任务的执行结果、检查任务是否完成等。

  3. 线程启动:我们将FutureTask传递给一个新线程,并启动该线程。这样,任务将在新线程中异步执行。

  4. 获取结果:使用futureTask.get()方法来获取任务的执行结果。如果任务还没有完成,get()方法会阻塞当前线程,直到任务完成并返回结果。

  5. 主线程继续执行:在等待任务结果的同时,主线程可以继续执行其他操作,例如打印一条消息。

这个例子展示了如何使用FutureTask来异步执行任务并获取其结果。

上一篇:javasystem.out.println快捷键

下一篇:java 判断文件夹是否存在

大家都在看

java连接数据库的代码

ubuntu 卸载java

java sort用法

java collections.sort

java file类的方法

java 判断

java时间数据类型

java 时间加一天

java demo

java 截取

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

Laravel 中文站