等待时间单位不同:Thread.sleep
是Thread
类的静态方法,参数是以毫秒为单位的等待时间;wait
是Object
类的实例方法,参数是以毫秒为单位的等待时间。
使用对象:Thread.sleep
用于使当前线程暂停执行一段时间,不释放对象锁;wait
用于使当前线程等待直到其他线程调用notify()
或notifyAll()
方法唤醒它,同时释放对象锁。
锁的释放:Thread.sleep
不需要持有对象锁;wait
方法需要在同步代码块或同步方法中调用,调用后会释放对象锁。
异常抛出:Thread.sleep
方法不会抛出异常;wait
方法会抛出InterruptedException
异常。