它們最大本質的區別是:sleep()不釋放同步鎖,wait()釋放同步鎖.
還有用法的上的不同是:sleep(milliseconds)可以用時間指定來使他自動醒過來,如果時間不到你只能調用interreput()來強行打斷;wait()可以用notify()直接喚起.
sleep和wait的區別還有:
1。這兩個方法來自不同的類分別是Thread和Object
2。最主要是sleep方法沒有釋放鎖,而wait方法釋放了鎖,使得其他線程可以使用同步控制塊或者方法。
3。wait,notify和notifyAll只能在同步控制方法或者同步控制塊里面使用,而sleep可以在
任何地方使用
synchronized(x){
x.notify()
//或者wait()
}
4。sleep必須捕獲異常,而wait,notify和notifyAll不需要捕獲異常