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 分钟前
Feign调Post接口异常:Incomplete output stream
java·后端·微服务
旷世奇才李先生15 分钟前
Lua 安装使用教程
开发语言·lua
q5673152319 分钟前
Java Selenium反爬虫技术方案
java·爬虫·selenium
张小洛22 分钟前
Spring IOC容器核心阶段解密:★Bean实例化全流程深度剖析★
java·后端·spring·ioc容器·bean实例化
Zonda要好好学习25 分钟前
Python入门Day2
开发语言·python
不良手残32 分钟前
IDEA类和方法注释模板设置-保姆教程
java·开发语言
GoodStudyAndDayDayUp37 分钟前
调用海康API预览视频
java·海康
李迟42 分钟前
在Linux服务器上使用kvm创建虚拟机
java·linux·服务器
Dcs42 分钟前
6 个 PWA 高阶策略,助你提升用户留存与参与度
java
hdsoft_huge1 小时前
Spring Boot 高并发框架实现方案:数字城市的奇妙之旅
java·spring boot·后端