-
Java中wait()和 sleep()的区别?
在Java中,wait()和sleep()方法用于线程控制,但它们之间存在几个关键区别:
1. 用途
-
wait():用于线程间的协作。当一个线程需要等待某个条件满足时,它会调用wait()方法释放锁并进入等待状态,直到其他线程调用相同对象的notify()或notifyAll()方法。 -
sleep():用于让当前线程暂停执行指定的时间,让出CPU给其他线程,但不会释放锁。
2. 释放锁
-
wait():在调用wait()方法时,线程会释放它所持有的对象锁(即它调用wait()方法的对象的锁),进入等待状态直到其他线程调用相同对象的notify()或notifyAll()方法。 -
sleep():调用sleep()方法时,线程不会释放任何锁。
3. 响应中断
