目录
[1.继承 Thread, 重写 run](#1.继承 Thread, 重写 run)
[2.实现 Runnable, 重写 run](#2.实现 Runnable, 重写 run)
[3.继承 Thread, 重写 run, 使用匿名内部类](#3.继承 Thread, 重写 run, 使用匿名内部类)
[4.实现 Runnable, 重写 run, 使用匿名内部类](#4.实现 Runnable, 重写 run, 使用匿名内部类)
[5.使用 lambda 表达式](#5.使用 lambda 表达式)
[6.请回答以下代码的输出, 并解释原因](#6.请回答以下代码的输出, 并解释原因)
1.继承 Thread, 重写 run
2.实现 Runnable, 重写 run
3.继承 Thread, 重写 run, 使用匿名内部类
4.实现 Runnable, 重写 run, 使用匿名内部类
5.使用 lambda 表达式
6.请回答以下代码的输出, 并解释原因
public static void main(String[] args) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
System.out.println("1");
}
});
t.start();
System.out.println("2");
}
此题可能输出结果为 2 1 或 1 2;
由于打印1 和 打印2分别在不同的线程中执行,具体先执行哪个线程是由系统决定的,且无法预测,所以两种情况都有可能。