一、创建线程
// 方式1:继承 Thread
new Thread(() -> System.out.println("run")).start();
// 方式2:实现 Runnable(推荐,解耦任务与线程)
Runnable r = () -> {};
new Thread(r).start();
二、线程状态
NEW → RUNNABLE → BLOCKED/WAITING/TIMED_WAITING → TERMINATED。调用 sleep 进入 TIMED_WAITING,wait 进入 WAITING,被 notify/notifyAll 唤醒。
三、为什么用多线程
利用多核并行、避免 IO 等待阻塞主流程。但线程不是越多越好,过多会上下文切换开销大,应配合线程池。
注意:run() 直接调用只是普通方法,必须 start() 才会启新线程。