run start
run
直接调用 run
方法. 是在 main 主线程中执行.
start
开辟线程,进入 CPU 等待队列
sleep wait
sleep 是线程控制自身流程的 方法. 不会释放锁
sleep
Thread 类 静态 方法. 不释放锁
sleep(0)
使 线程进行重分配. 所有线程重新竞争 CPU
wait
会释放锁. Object 类方法. 用于线程间通信.
配合 notify notifyall 方法进行 线程间唤醒睡眠
wait(1000)
使当前的线程释放锁 1000ms.之后如果锁没被其他对象获取的话,则再次获取锁执行代码
wait 只能在同步代码块中使用. sleep 在任何地方使用
notify notifyall
notify
随机唤醒[等待队列第一个]线程,去执行代码
notifyall
唤醒所有线程竞争锁.