wait()
是Object
的實例方法,但sleep()
是Thread
類別的靜態方法。wait()
必須在同步區塊或方法(synchronized block/method)中呼叫,但sleep()
不用。- 呼叫
wait()
等待的執行緒可在其他執行緒中呼叫notify()
或notifyAll()
來喚醒,但sleep()
只能等指定時間過去才會喚醒。 wait()
通常在條件式中使用,也就是當條件滿足前都保持在等待的狀態,但sleep()
通常只是為了暫緩執行緒的執行。wait()
會釋放對物件的鎖,但sleep()
不會。wait()
是作用在同步區塊中對物件的監控上,但sleep()
是直接作用在執行緒。wait()
用來處理執行緒之間物件同步的問題,而sleep()
是暫緩執行緒的執行。
沒有留言:
張貼留言