Runnable和Callable的使用

java 复制代码
package study;

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

public class day03_runnable和callable {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        Task1 task1 = new Task1();
        new Thread(task1).start();

        Task2 task2 = new Task2(10);
        FutureTask<Long> futureTask = new FutureTask<Long>(task2);
        new Thread(futureTask).start();  // FutureTask实现了Runnable, 所以可以传入Thread的构造函数

        Long result = futureTask.get(); // 死等计算完成结果
        System.out.println(result);
    }
}

class Task1 implements Runnable {
    @Override
    public void run() {
        System.out.println("Runnable");
    }
}

class Task2 implements Callable<Long> {
    private long num;

    public Task2(int num) {
        this.num = num;
    }

    @Override
    public Long call() throws Exception {
        return this.num + 10;
    }
}
相关推荐
Lyyaoo.2 分钟前
【Java基础面经】Java 反射机制
java·开发语言·python
YXWik67 分钟前
Langchain4j(1)基础对话+连续对话+工具调用 + 流式响应+结构化 JSON 输出
java
m0_6948455717 分钟前
UVdesk部署教程:企业级帮助台系统实践
服务器·开发语言·后端·golang·github
泉飒17 分钟前
C2001: 常量中有换行符-QT解决办法-逆向思路
开发语言·qt
967718 分钟前
什么是 Thymeleaf?
java
Dream_sky分享24 分钟前
找类中字段属性不同工具类
java
ghie909024 分钟前
基于学习的模型预测控制(LBMPC)MATLAB实现指南
开发语言·学习·matlab
咚为28 分钟前
Rust 经典面试题255道
开发语言·面试·rust
givemeacar30 分钟前
SpringBoot3.3.0集成Knife4j4.5.0实战
java
十六年开源服务商35 分钟前
家庭装修公司网站方案策划2026
java·开发语言