在 Java 里,Runnable 是一个接口,用来表示“可以被线程执行的任务”,也就是“可运行的任务”。
Runnable 是 Java 标准库中的一个接口:
public interface Runnable {
void run();
}
它只有一个方法:
run():线程启动后要执行的代码“可运行(Runnable)”指的是:
这段逻辑已经准备好,可以被线程拿去执行
但注意:
Runnable 不会自动创建或启动线程class MyThread extends Thread {
public void run() {
System.out.println("运行");
}
}
问题:
class MyTask implements Runnable {
public void run() {
System.out.println("任务执行");
}
}
使用线程执行:
Thread t = new Thread(new MyTask());
t.start(); // 线程启动,调用 run()
✅ 优点:
Thread(线程)
↓ 执行
Runnable(任务)
常见用法:
new Thread(Runnable)ExecutorService.submit(Runnable)因为 Runnable 是函数式接口,可以用 Lambda:
Runnable r = () -> {
System.out.println("可运行任务");
};
new Thread(r).start();
| 对比 | Runnable | Callable |
|---|---|---|
| 返回值 | 无 | 有 |
| 异常 | 不能抛 checked | 可以 |
| 使用场景 | 简单任务 | 有结果任务 |
Runnable 就是“可以被线程运行的任务”,它定义了线程要做什么,但不负责运行本身。
如果你愿意,我也可以帮你画一张 线程 vs Runnable 的关系图,或者讲 线程状态中的 RUNNABLE 状态(容易混淆)。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。