等待時(shí)間單位不同:Thread.sleep
是Thread
類的靜態(tài)方法,參數(shù)是以毫秒為單位的等待時(shí)間;wait
是Object
類的實(shí)例方法,參數(shù)是以毫秒為單位的等待時(shí)間。
使用對(duì)象:Thread.sleep
用于使當(dāng)前線程暫停執(zhí)行一段時(shí)間,不釋放對(duì)象鎖;wait
用于使當(dāng)前線程等待直到其他線程調(diào)用notify()
或notifyAll()
方法喚醒它,同時(shí)釋放對(duì)象鎖。
鎖的釋放:Thread.sleep
不需要持有對(duì)象鎖;wait
方法需要在同步代碼塊或同步方法中調(diào)用,調(diào)用后會(huì)釋放對(duì)象鎖。
異常拋出:Thread.sleep
方法不會(huì)拋出異常;wait
方法會(huì)拋出InterruptedException
異常。