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