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