Java线程的三种创建方式

java线程创建的三种方式为:

1.继承Thread类

scala 复制代码
class MyThread extends Thread {

    public void run() {
        // 线程执行的代码
    }

}
// 使用
MyThread thread = new MyThread();
thread.start();`

实现runable接口

arduino 复制代码
`class MyRunnable implements Runnable {
    public void run() {
        // 线程执行的代码
    }
}

// 使用
Thread thread = new Thread(new MyRunnable());
thread.start();`

实现callable接口

arduino 复制代码
class MyCallable implements Callable<String> {
    public String call() throws Exception {
        // 线程执行的代码
        return "结果";
    }
}

// 使用
ExecutorService executor = Executors.newSingleThreadExecutor();
Future<String> future = executor.submit(new MyCallable());
String result = future.get(); // 获取返回值
executor.shutdown();

三种方法的演变关系是依次的,thread类最早,runable接口次之,callable接口最晚,其中callable接口提供了执行完成后提供返回值的能力,通常推荐的是使用继承runnable接口的方式,如果需要使用返回值,则使用callable接口。

graph TD A[需要创建线程] --> B{需要返回值或异常处理?} B -->|是| C[使用Callable+Future] B -->|否| D{类需要继承其他类吗?} D -->|是| E[实现Runnable] D -->|否| F{简单临时使用?} F -->|是| G[继承Thread] F -->|否| H[实现Runnable]
相关推荐
2601_953988074 分钟前
Ricon组态 - 让数据可视化如此简单
运维·后端·物联网·数学建模·前端框架·c4前端
jsl_jsl_jsl5 分钟前
操作系统速记
后端
geovindu6 分钟前
java: Strategy Pattern
java·开发语言·后端·设计模式·策略模式·行为模式
garmin Chen7 分钟前
MySQL精简面试题
数据库·后端·mysql·面试
中趴菜7 分钟前
robots.txt 规则误拦排查实战指南
后端
落木萧萧82515 分钟前
Wrapper、Criteria、Specification:查询能不能写得好维护一点
数据库·后端·架构
步行cgn19 分钟前
构造注入详解:Spring 依赖注入的首选方式
后端
吃饱了得干活19 分钟前
Spring Boot + Redis 分布式锁:一个订单重复提交引发的六次迭代
java·redis·后端
步行cgn20 分钟前
依赖注入详解:Spring IoC 的实现方式
后端
平头哥AI1 小时前
Day 21 _ error 是个普通值_errors.New 与 fmt.Errorf 造出来,沿调用栈抛到 main 接住
后端·学习·golang·go