试题与答案

下列说法中错误的一项是A.当线程需要在synchronized块中等待共享数据状态改

题型:单项选择题

题目:

下列说法中错误的一项是

A.当线程需要在synchronized块中等待共享数据状态改变时,则需要调用wait()方法

B.当线程需要在synchronized块中等待共享数据状态改变时,则需要调用notify()方法

C.线程在synchronized块中执行完操作后,调用notify()方法通知正在等待的线程重新占有锁

D.wait()和notify()可以实现线程的同步操作

答案:

参考答案:B

解析: 本题考查线程间交互的概念。当线程进入synchronized块后,共享数据的状态并不一定满足该线程的需要,它要等待其他线程将共享数据改变为所需要的状态后才能继续执行,但由于此时它占有了该对象的锁,其他线程无法对共享数据进行操作,此时线程调用wait()方法进入等待状态,并且暂时释放共享数据的对象锁,其他线程可以获得该对象锁,进入synchronized块进行操作,操作完成之后,再调用notify()方法通知等待的线程重新占有锁,这样就实现了线程的同步操作,由此可见,wait()方法是线程需要在synchronized块中等待共享数据状态改变时调用,而notify()方法是线程在synchronized块中执行完操作后调用,用来通知正在等待的线程重新占有锁,选项B的说法错误。

试题推荐
微信公众账号搜索答案