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;
    }
}
相关推荐
城管不管1 小时前
Maven Helper
java·macos·intellij-idea
ch.ju2 小时前
Java程序设计(第3版)第三章——数组的动态获取
java·开发语言
Java知识技术分享2 小时前
策略模式的两种实现:抽象类和接口
java·spring·策略模式
液态不合群2 小时前
Redis--哨兵机制与CAP定理
java·redis·bootstrap
曹牧2 小时前
Java:PDF文件扁平化处理
java·开发语言·pdf
灰色人生qwer2 小时前
解决IDEA运行Java程序jdk版本不匹配问题
java·开发语言·intellij-idea
小侯不躺平.2 小时前
C++ Boost库【3】 --类型推导
开发语言·c++
枫叶丹42 小时前
【HarmonyOS 6.0】状态栏扩展新特性:点击状态栏图标展开二级菜单的场景动效详解
开发语言·华为·harmonyos
yaoxin5211232 小时前
405. Java 文件操作基础 - 装饰者模式与 I/O Streams
java·开发语言·python
xiufeia2 小时前
后端项目初始化的一些小坑点
java·junit·maven·idea