实现Runnable接口后需通过Thread对象执行:先定义实现类并重写run()方法,再将其实例传入Thread构造器,调用start()启动新线程;可用Lambda简化;切勿直接调用run()或重复start()。

实现 Runnable 接口后,不能直接运行,必须交给 Thread 对象去执行。核心是:把 Runnable 实例传给 Thread 构造器,再调用 start() 方法。
创建 Runnable 实现类
先定义一个类实现 Runnable 接口,并重写 run() 方法,里面写要在线程中执行的逻辑:
示例:
class MyTask implements Runnable {
public void run() {
System.out.println("任务正在运行,线程名:" + Thread.currentThread().getName());
}
}
用 Thread 包装并启动
创建 Thread 对象时,把 Runnable 实例作为参数传入;之后调用 start()(不是 run())才能真正启动新线程:
分析 Java Spring Boot 后端 Controller 代码,自动生成 Markdown 格式的接口文档。当用户说“生成 Java 接口文档”、“生成 API 文档”、“从 Spring 代码生成文档”时触发。
new Thread(new MyTask()).start();- 也可以起个名字:
new Thread(new MyTask(), "Worker-1").start(); - 如果只是临时用一次,可用匿名内部类或 Lambda 表达式简化
使用 Lambda 简化写法(推荐)
JDK 8+ 支持函数式接口,Runnable 正好只有一个抽象方法,可直接用 Lambda:
new Thread(() -> System.out.println("Hello from thread!")).start();- 更清晰的写法:
Runnable task = () -> doSomething(); new Thread(task).start();
常见误区提醒
容易出错的地方:
- 调用
run()方法不会启动新线程,只是普通方法调用,仍在当前线程执行 - 一个
Thread实例只能start()一次,重复调用会抛IllegalThreadStateException -
Runnable本身不包含线程调度能力,它只是任务定义;线程的生命周期由Thread控制
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










