简述sleep(long millis)方法和wait()方法有什么区别。
时间: 2024-06-06 14:06:43 浏览: 161
C#中sleep和wait的区别分析
sleep(long millis)方法是Thread类中的一个静态方法,它会使当前线程休眠指定的毫秒数,不会释放对象锁,也就是说在当前线程休眠期间,其他线程依然无法访问该对象。
wait()方法是Object类中的实例方法,它会使当前线程进入等待状态,并释放对象锁,直到其他线程调用notify()或notifyAll()方法来唤醒当前线程。wait()方法必须在synchronized方法或synchronized块中调用,否则会抛出IllegalMonitorStateException异常。
因此,sleep(long millis)方法是用于让当前线程休眠指定时间的方法,而wait()方法是用于线程间通信的方法,它可以让一个线程等待另一个线程的通知。两者的主要区别在于wait()方法会释放对象锁,而sleep(long millis)方法不会释放对象锁。
阅读全文