相同點(diǎn)
- 都會(huì)將當(dāng)前線程暫停,交出CPU資源讓其它線程運(yùn)行。
- 都是native方法。
- 在等待期間被中斷,都會(huì)拋出InterruptedException。
不同點(diǎn)
- 所屬類不同
- sleep() 屬于Thread類。
- wait() 屬于Object類。
- 對(duì)鎖保持不同
- sleep() 保持鎖。
- wait() 釋放鎖。
- 喚醒方法不同
- sleep() 到達(dá)指定時(shí)間自動(dòng)喚醒。
- wait() 需要notify()或notifyAll()喚醒。
- 使用位置不同
- sleep() 用于任何位置。
- wait() 用于同步代碼塊。
- 調(diào)用后進(jìn)入狀態(tài)不同
- sleep() 進(jìn)入TIMED-WAITING
- wait() 進(jìn)入 WAITING