wait()与解锁

来源:百度知道 编辑:UC知道 时间:2024/06/15 08:33:59
如果一个线程在同步方法中的调用了wait(),此线程就会处于等待状态,它会交出对象锁,那此时交出的锁是解开的,还是锁住的?

如果一个线程在同步中使用了wait()方法,那么它就会释放该对象的锁.同时同步方法就被解开.但是如果不立即使用notify()或notifyAll()方法去唤醒其他正在等待的线程的话,那么该线程就会一直等待下去.而正在等待的其他线程也会一直等待下去.造成程序无法正常运行.

所以wait()和notify()方法始终都是配合起来用,比如两根线程,一个线程调用wait()方法后接着调用nitify()方法唤醒另一个线程,而另一个线程执行完了再调用notify()方法去唤醒第一个线程,然后又调用wait()方法让自己再进入等待.
也就是如此交替下去.

要具体分析啦
很有可能立即被另一个线程锁住