hhrのblog
首页项目归档照片墙音乐灵境说说杂谈友链关于
封面

Thead线程

写作时间:2026-07-04 15:40:11

一、两种创建方式简述

继承 Thread 子类

自定义类继承 Thread,重写 run (),实例化子类后直接调用 start () 启动线程。

实现 Runnable 接口

自定义类实现 Runnable 并重写 run (),将该类实例传入 Thread 构造方法,再调用 start () 创建线程。

二、核心区别

继承约束

Java 单继承,继承 Thread 后无法再继承其他父类;实现 Runnable 无此限制,可同时继承其他类、实现多个接口,扩展性更强。

资源共享

Thread 子类每个线程是独立对象,难以共享任务数据;Runnable 可多个 Thread 共用同一个 Runnable 实例,天然支持多线程共享资源(如售票、计数场景)。

代码耦合

Thread 子类把线程控制与业务任务写在同一个类,耦合度高;Runnable 将任务逻辑和线程对象解耦,符合单一职责。

线程复用与工程适配

Thread 子类无法适配线程池,每次任务都要新建线程,开销大;Runnable 是线程池、定时任务标准入参,支持线程复用,线上项目主流使用。

使用优缺点

继承 Thread:代码简洁,适合简单测试 Demo;扩展性差、资源共享困难、不适合生产环境。

实现 Runnable:灵活、易共享资源、适配并发工具;代码多一层包装,写法稍繁琐。

三、底层原理补充

Thread 类本身已实现 Runnable 接口;

继承 Thread 并重写 run:执行子类重写的 run;

传入 Runnable 实例:Thread 内置 target 执行外部 Runnable 的 run 逻辑。

四、适用场景

继承 Thread:简单独立小 demo、无继承需求的简易程序;

实现 Runnable:业务开发、多线程共享数据、使用线程池等正式项目。


‍

avatar

higher

一个普通人。

RECOMMENDED

形式化方法

2026-05-31 17:39:40

prime number

2026-05-31 17:47:29

枚举类型应用场景

2026-05-31 17:55:09