推荐实现 runnable 接口,因java单继承限制使已有父类时无法继承thread;runnable支持多实现、解耦任务与线程、便于资源共享、单元测试及线程池迁移,仅极少数需直接操作线程状态时才考虑继承thread。

Java 中通过实现 Runnable 接口创建线程,核心是把任务逻辑封装进 run() 方法,再将该对象交给 Thread 去执行,而不是直接继承 Thread 类。
为什么推荐用 Runnable 而不是继承 Thread
Java 不支持多继承,如果类已经继承了其他父类,就无法再继承 Thread;而实现 Runnable 是接口,可与任意继承体系共存。同时,它更符合“线程负责调度、任务负责逻辑”的职责分离原则。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
实现 Runnable 的基本步骤
- 定义一个类,实现 Runnable 接口(必须重写
public void run()方法) - 在
run()方法中编写要在线程中执行的代码(不能抛出受检异常) - 创建该类的实例,并将其作为参数传给
Thread构造器 - 调用
Thread.start()启动线程(不是直接调用run())
一个简洁可用的例子
下面是一个打印 1 到 5 的简单任务:
class MyTask implements Runnable {
public void run() {
for (int i = 1; i
常见注意事项
-
start()和run()不是一回事:调用run()只是普通方法调用,仍在当前线程执行;只有start()才真正开启新线程 -
Runnable实例可以被多个Thread共享(适合多个线程执行同一任务逻辑) - 若需传参,可在实现类的构造器中接收并保存为成员变量,供
run()使用 - 任务中如需处理异常,应使用
try-catch,因为run()方法签名不支持 throws 受检异常
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










