sleep(休眠)
- 当t线程调用Thread.sleep()时,会让线程t休眠指定时间
- Thread.sleep() 和 Thread.currentThread().sleep() 效果一样
- sleep方法不会释放同步锁
- sleep不会影响到其他线程
yield(让步)
- 在t线程中调用Thread.yield()时会让t线程放弃一次cpu调度(通常是当前这次调度)
- yield让当前线程让步给其他线程执行
wait(锁住等待)
- 当t线程调用obj.wait()时,t线程会进入waiting状态,并放弃obj对象锁,直到其他线程调用obj.notify()/notifyAll()方法唤醒线程t
- wait方法会释放同步锁
- 线程只能在一个同步块中调用wait方法
- wait方法让两个线程交替执行
join(加入)
- 在main线程中调用线程t.join()时,main线程会等待t线程完全执行完成才会继续执行
- join让两个线程串行执行