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;
    }
}
相关推荐
南山十一少11 分钟前
Spring Boot 实战:基于 Validation 注解实现分层数据校验与校验异常拦截器统一返回处理
java·前端·spring boot·后端
xcLeigh16 分钟前
C# Winform 俄罗斯方块小游戏源码
开发语言·c#
小馒头学python19 分钟前
【Python爬虫五十个小案例】爬取猫眼电影Top100
开发语言·爬虫·python
孤鲸落屿20 分钟前
第十章 作业
开发语言·前端·javascript
ueotek25 分钟前
Ansys Zemax | 使用多重结构操作数控制单一结构系统中的参数
开发语言·中间件·参数·ansys·zemax·光学·知识干货
chusheng184041 分钟前
Java 基于SpringBoot +Vue的4S 店车辆管理系统(附源码,说明文档,部署)
java·vue.js·spring boot·汽车管理系统·4s店汽车管理系统·4s 店汽车管理
白衣神棍42 分钟前
ES更新问题 Failed to close the XContentBuilder异常
java·elasticsearch
霍夫曼vx_helloworld73521 小时前
(三)手势识别——动作识别应用【代码+数据集+python环境(免安装)+GUI系统】
开发语言·python
赵闪闪1681 小时前
如何打开RAW文件?——详细的工具与方法指南
java
CChuaizhi1 小时前
数学建模_基于对数和傅里叶变换的多通道图像增强模型(处理模糊)Matlab代码包教会使用,直接替换数据即可
开发语言·数学建模·matlab