在 Java 中,Runnable 是一个函数式接口(@FunctionalInterface),只有一个方法:
void run();
创建“可运行的任务(Runnable)”并运行,常见有以下几种方式:
class MyTask implements Runnable {
@Override
public void run() {
System.out.println("任务执行中...");
}
}
public class Test {
public static void main(String[] args) {
Thread t = new Thread(new MyTask());
t.start();
}
}
Runnable r = new Runnable() {
@Override
public void run() {
System.out.println("匿名内部类方式");
}
};
new Thread(r).start();
因为 Runnable 是函数式接口:
Runnable r = () -> {
System.out.println("Lambda 方式");
};
new Thread(r).start();
或更简洁:
new Thread(() -> System.out.println("Hello Runnable")).start();
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class Test {
public static void main(String[] args) {
ExecutorService pool = Executors.newFixedThreadPool(2);
pool.execute(() -> {
System.out.println("线程池执行任务");
});
pool.shutdown();
}
}
| 对比项 | Runnable | Callable |
|---|---|---|
| 返回值 | 无 | 有 |
| 异常 | 不能抛受检异常 | 可以 |
| 使用场景 | 简单任务 | 需要结果或异常 |
✅ 创建 Runnable 最简单方式:
Runnable r = () -> { /* 任务代码 */ };
✅ 运行方式:
new Thread(r).start();execute(r)如果你是想问 “Runnable 为什么能运行” 或 “和 Thread 的关系”,也可以继续问我。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。