下列情况中,不会使线程返回所持有的对象锁的是A.当synchronized()语句块执行完毕B.当调用了线程

题目

下列情况中,不会使线程返回所持有的对象锁的是

A.当synchronized()语句块执行完毕

B.当调用了线程的suspend()方法

C.当在synchronized()语句块中出现异常(Exception)

D.当持有锁的线程调用该对象的wait()方法

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

18、当一个线程进入一个对象的一个synchronized()方法后,其他线程不可以再进入该对象同步的其他方法执行。()


分几种情况: 1.其他方法前是否加了synchronized 关键字,如果没加,则能。 2.如果这个方法内部调用了wait,则可以进入其他synchronized 方法。 3.如果其他个方法都加了synchronized 关键字,并且内部没有调用wait,则不能。

第2题:

7、一个线程即使没有执行完它所调用对象的synchronized块或方法时,也会自动释放互斥锁。


错误

第3题:

线程同步中,对象的锁在()情况下持有线程返回

A.当synchronized()语句块执行完毕后

B.当在synchronized()语句块执行中出现例外(exception)时

C.当持有锁的线程调用该对象的wait()方法时

D.以上都是


以上都是

第4题:

4、线程同步中,对象的锁在()情况下持有线程返回

A.当synchronized()语句块执行完毕后

B.当在synchronized()语句块执行中出现例外(exception)时

C.当持有锁的线程调用该对象的wait()方法时

D.以上都是


D

第5题:

下列说法中错误的一项是______。

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

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

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

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


正确答案:B
解析:线程调用wait()方法,进入等待状态,并且暂时释放共享数据的对象锁,其他的线程可以获得该对象锁,进入临界区进行操作,操作完成之后,再调用notify()方法通知等待的线程重新占有锁,这样就实现了线程的同步操作。

第6题:

在多线程并发程序设计中,能够给对象x加锁的语句是( )。 A.X.waitB.synchronized(x)S

在多线程并发程序设计中,能够给对象x加锁的语句是( )。

A.X.wait

B.synchronized(x)

C.X.notify

D.x.synchronized


正确答案:B
B。【解析】Java平台将每一个由synchronized(object)语句指定的对象设置一个锁,称为对象锁,是一种独占的排他锁。

第7题:

下列说法中错误的一项是

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

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

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

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


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

第8题:

下列情况中,不会使线程返回所持有的对象锁的是( )。

A.当synchronized()语句块执行完毕

B.当调用了线程的suspend()方法

C.当在synchronized()语句块中出现异常(Exception)

D.当持有锁的线程调用该对象的wait()方法


正确答案:B
解析:suspend()方法只是挂起线程,并不释放线程中持有的锁。而选项A、C、D都可以释放线程所持有的锁。

第9题:

在以下哪种情况下,对象不会解锁?( )

A.synchronized段语句块执行完毕

B.synchronized语句块中出现exception

C.持锁线程调用对象wait () 方法

D.synchronized语句块中调用suspend () 方法


正确答案:D
解析:suspend ()方法只是挂起线程,并不释放线程中持有的锁。