1. sleep()

  • 父类是Thread
  • 不释放锁
  • 需要捕捉异常

2. join()

  • 父类是Thread
  • 等待线程执行完毕再继续执行

3. yield()

  • 类似sleep(),但是无法指定休眠多久
  • 也不会释放锁
  • 退让使得同优先级的线程有机会执行

4. wait(),notify(),notifyAll()

这三个方法用于协调多个线程对共享数据的存取。

  • 父类是Object
  • 必须再同步块内使用
  • wait()可以暂时释放锁,让其他线程有机会访问共享变量
  • notify()唤醒等待池的线程,只有等待池中唤醒的线程可以重新获取锁

参考资料:http://www.tuicool.com/articles/QNVZ3m