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;
    }
}
相关推荐
koko4210 分钟前
天津小公司面经
java·学习·面试
zjjuejin18 分钟前
Maven 现代开发流程的集成
java·后端·maven
lly20240619 分钟前
AJAX JSON 实例
开发语言
Zzzzmo_29 分钟前
【Java】杨辉三角、洗牌算法
java·数据结构·算法
码界奇点29 分钟前
基于飞算JavaAI的在线图书借阅平台从设计到实现的完整指南
java·飞书
QiZhang | UESTC29 分钟前
JAVA算法练习题day27
java·开发语言·c++·算法·leetcode·hot100
hrrrrb30 分钟前
【Spring Boot】Spring Boot 中常见的加密方案
java·spring boot·后端
坚持就完事了31 分钟前
2-C语言中的数据类型
c语言·开发语言
十碗饭吃不饱33 分钟前
sql报错:java.sql.SQLSyntaxErrorException: Unknown column ‘as0‘ in ‘where clause‘
java·数据库·sql
饼干吖44 分钟前
记一次滑动数组解题
java·算法