下面四个选项中,哪些是线程进入阻塞状态的原因?()A、线程试图获取某个对象的同步锁,而该锁被其它线程持有B、线程调用了另一个线程的join()方法C、当线程调用了一个阻塞式的IO方法D、线程调用了setDaemon(boolean b)方法

题目

下面四个选项中,哪些是线程进入阻塞状态的原因?()

  • A、线程试图获取某个对象的同步锁,而该锁被其它线程持有
  • B、线程调用了另一个线程的join()方法
  • C、当线程调用了一个阻塞式的IO方法
  • D、线程调用了setDaemon(boolean b)方法
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

在以下( ),线程就进入可运行状态。

A.线程调用了sleel()方法时

B.线程调用了join()方法时

C.线程调用了yield()方法时

D.以上都是


正确答案:C

第2题:

下面关于线程状态及转换的描述,正确的是()。

A、线程从阻塞状态只能进入就绪状态,而不能直接进入运行状态

B、当线程对象调用了start()方法后,该线程就进入运行状态

C、一旦进入死亡状态,线程将不再拥有运行的资格,也不能再转换到其他状态

D、线程只能从新建状态转换到就绪状态,反之则不能


参考答案:ABC

第3题:

如果线程正处于阻塞状态,不能够使线程直接进入可运行状态的情况是( )。

A.sleep()方法的时间到

B.获得了对象的锁

C.线程在调t.join()方法后,线程t结果

D.wait()方法结束


正确答案:D
解析:walt()会使线程放弃对象锁,进入等待此对象的等待锁定池。

第4题:

如果线程正处于阻塞状态,不能够使线程直接进入可运行状态的情况是

A.sleep()方法的时间到

B.获得了对象的锁

C.线程在调用t.join()方法后,线程t结束

D.wait()方法结束


正确答案:D
解析:线程调用wait()方法时,线程由运行状态进入等待阻塞状态;在等待阻塞状态下的线程若被notifyAll()和notionAll()唤醒、被interrupt()中断或者等待时间到,线程将进入对象锁阻塞状态,而不是直接进入可运行状态。

第5题:

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

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

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

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

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


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

第6题:

下列关于线程的说法中,正确的是

A.一个线程一旦被创建,就立即开始运行

B.使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行

C.当运行状态的线程因为调用了yield()方法而停止运行,它一定被放在可运行线程队列的前面

D.当因等待对象锁而被阻塞的线程获得锁后,将直接进入运行状态


正确答案:B
解析:线程被创建后,如果调用start()方法,线程便处于就绪状态,即可执行状态,但并不一定立即得到执行。当调用了yield()方法之后,线程放在处于同一个优先级的可执行的线程队列的后面。当阻塞的线程获得锁后,将进入就绪状态,并不一定立即执行。

第7题:

在以下什么情况下,线程就进入可运行状态? ( )

A.线程调用了sleep()方法时

B.线程调用了join()方法时

C.线程调用了yield()方法时

D.以上都是


正确答案:C

第8题:

线程调用了sleep()方法后,该线程将进入【 】状态。


正确答案:阻塞
阻塞 解析:n果发生下面几种情况时,线程就进入阻塞状态:线程调用了sleep()方法、join()方法时,线程进入阻塞状态;线程调用wait()方法时,线程由运行状态进入阻塞状态。

第9题:

在以下( )情况下,线程就进入可运行状态。

A.线程调用了sleep()方法时

B.线程调用了join()方法时

C.线程调用了yield()方法时

D.以上都是


正确答案:C

第10题:

如果线程正处于阻塞状态,不能够使线程直接进入可运行状态的情况是( )。 A.sleep方法的时间到S

如果线程正处于阻塞状态,不能够使线程直接进入可运行状态的情况是( )。

A.sleep方法的时间到

B.获得了对象的锁

C.线程在调用t.join方法后,线程t结束

D.wait方法结束


正确答案:D
D。【解析】wait会使线程放弃对象锁,进入等待此对象的等待锁定池。

更多相关问题