2021-01-18 线程创建的两种方式

2021-01-20  本文已影响0人  Denholm

方式一:
直接使用 Thread

// 创建线程对象
Thread t = new Thread() {
 public void run() {
 // 要执行的任务
 }
};
// lambda表达式
Thread t = new Thread(() -> { 
// 要执行的任务(单行代码可省略大括号)
});
// 启动线程
t.start();

方式二:
把【线程】和【任务】(要执行的代码)分开
Thread 代表线程
Runnable 可运行的任务(线程要执行的代码)

Runnable runnable = new Runnable() {
 public void run(){
 // 要执行的任务
 }
};
// lambda表达式
Runnable r = () -> { 
// 要执行的任务(单行代码可省略大括号)
};
// 创建线程对象
Thread t = new Thread( runnable );
// 启动线程
t.start();

小结
方式一 是把线程和任务合并在了一起,方式二是把线程和任务分开了
用 Runnable 更容易与线程池等高级 API 配合
用 Runnable 让任务类脱离了 Thread 继承体系,更灵活

方式三,FutureTask 配合 Thread
FutureTask 能够接收 Callable 类型的参数,用来处理有返回结果的情况

上一篇 下一篇

猜你喜欢

热点阅读