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;
    }
}
相关推荐
程序员岳焱2 分钟前
Java高级反射实战:15个场景化编程技巧与底层原理解析
java·后端·编程语言
程序员小假2 分钟前
说一说 Netty 中的心跳机制
java·后端
真实的菜9 分钟前
消息队列处理模式:流式与批处理的艺术
java
Bruce_Liuxiaowei10 分钟前
PHP文件包含漏洞详解:原理、利用与防御
开发语言·网络安全·php·文件包含
泽020220 分钟前
C++之STL--list
开发语言·c++·list
YGGP24 分钟前
吃透 Golang 基础:数据结构之 Map
开发语言·数据结构·golang
盖世英雄酱5813624 分钟前
Java 内存管理技巧(新手必看集合篇)
java
~plus~25 分钟前
Harmony核心:动态方法修补与.NET游戏Mod开发
开发语言·jvm·经验分享·后端·程序人生·c#
码农小灰27 分钟前
Java 8 Stream API 入门到实践详解
java·java案例
步、步、为营32 分钟前
.NET 事件模式举例介绍
java·开发语言·.net