发布网友 发布时间:2022-04-23 07:37
共4个回答
热心网友 时间:2022-04-13 12:17
一个被wait后,即使它被notify,它后面的大段代码是继续执行啊。
你这个程序是通过bShouldSub来控制两个方法被交互执行的。
wait就是当前线程被阻塞,直到被另一个线程notify(唤醒),然后当前进程继续执行上次未完成的操作。
下面是API里面写的:
The current thread must own this object's monitor. The thread releases ownership of this monitor and waits until another thread notifies threads waiting on this object's monitor to wake up either through a call to the notify method or the notifyAll method. The thread then waits until it can re-obtain ownership of the monitor and resumes execution.
热心网友 时间:2022-04-13 13:35
wait顾名思义,当前线程等待其他线程的notify,当获取notify信号后那么继续执行后面的代码.
实例方法用synchronized那么锁定的是这个对象,静态方法用synchronized锁定的是这个类,所以当用sync修饰方法时,同一时间不会出现多个线程访问该对象的方法.
热心网友 时间:2022-04-13 15:10
第一个问题,wait被notify以后会继续wait下面的代码运行
第二个问题,当synchronized的方法中含有wait时,wait中synchronized的锁会被释放