计算机科学与技术

多选题有三种原因可以导致线程不能运行,它们是()A等待B阻塞C休眠D挂起及由于I/O操作而阻塞

题目
多选题
有三种原因可以导致线程不能运行,它们是()
A

等待

B

阻塞

C

休眠

D

挂起及由于I/O操作而阻塞

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

第1题:

如果线程调用下列方法,不能保证使该线程停止运行的是

A ) sleep ()

B ) stop ()

C ) yield ()

D ) wait ()


正确答案:C

第2题:

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

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

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

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

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


参考答案:ABC

第3题:

下列叙述正确的是( )。

A.线程的执行从run()方法开始,需要调用start()方法运行线程

B.可以通过实现Runnable接口,并且重写start()方法创建线程

C.可以通过继承Thread类,并且重写start()方法创建进程

D.线程执行从start()方法开始,需要通过调用run()方法运行线程


正确答案:A
解析:创建线程有两种方法:实现java. lang. Runnable接口;继承Thread类并重写run( )方法。run( )方法定义了线程体和线程的具体行为。创建线程后,需要调用start( )方法运行线程。

第4题:

有关线程的哪些叙述是对的? ( ) Ⅰ:一旦一个线程被创建,它就立即开始运行 Ⅱ:使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行 Ⅲ:当一个线程因为抢先机制而停止运行时,它被放在可运行队列的前面 Ⅳ:一个线程可能因为不同的原因停止(cease)并进入就绪状态

A.Ⅱ、Ⅲ

B.Ⅱ、Ⅳ

C.Ⅰ、Ⅱ

D.Ⅲ、Ⅳ


正确答案:B
解析:本题是考查对线程概念的掌握。一个新创建的线程并不是自动的开始运行的,必须调用它的start()方法使之将线程放入可运行态(runnable state),这只是意味着该线程可被JVM的线程调度程序调度而不是意味着它可以立即运行。线程的调度是抢先式的,而不是分时间片式的。具有比当前运行线程高优先级的线程可以使当前线程停止运行而进入就绪状态。不同优先级的线程间是抢先式的,而同级线程间是轮换式的。一个线程停止运行可以是因为不同原因,可能是因为更高优先级线程的抢占,也可能是因为调用sleep()方法。而即使是因为抢先而停止也不一定就进入可运行队列的前面,因为同级线程是轮换式的,它的运行可能就是因为轮换,而它因抢占而停止后只能在轮换队列中排队而不能排在前面。

第5题:

如果线程调用下列方法,不能保证使该线程停止运行的是

A.sleep()

B.stop()

C.yield()

D.wait()


正确答案:D
解析:yield()方法的功能是,线程暂停,让出CPU,使同优先级的其他线程运行。如果不存在有机会运行的线程,yield()方法将直接返回,线程继续执行。

第6题:

一个线程可以调用yield方法使其他线程有机会运行。()


参考答案:正确

第7题:

如果线程调用下列方法,不能保证使该线程停止运行的是( )。A.sleep( )B.stop( )SXB

如果线程调用下列方法,不能保证使该线程停止运行的是( )。

A.sleep( )

B.stop( )

C.yield( )

D.wait( )


正确答案:C
线程的方法中sleep()方法的作用是使比当前线程优先级低的线程运行。该方法使-个线程暂停运行-段固定时间。在休眠时间内,线程将不运行,低优先级的线程将有机会运行。yield()方法为只让给同等优先级的线程运行。如果没有同等优先级的线程是可运行状态,yield()方法将什么也不做,即线程将继续运行。stop()方法是强行终止线程。wait()方法是线程问交互的方法,是使-个线程停止运行,进入等待状态。

第8题:

下列关于线程调度的叙述中,错误的是( )。

A.调用线程的sleep()方法,可以使比当前线程优先级低的线程获得运行机会

B.调用线程的yield()方法,可以使与当前线程相同优先级的线程获得运行机会

C.当有比当前线程优先级高的线程出现时,高优先级线程将抢占CPU并运行.

D.具有相同优先级的多个线程的调度一定是分时的


正确答案:D
解析:Java的线程调度是基于优先级的抢先式调度,它总是选择高优先级的线程先执行。所以选项C正确。Thread提供了如下的基本线程控制方法:sleep (),线程暂停,让出CPU,使低优先级的线程运行;yield(),线程暂停,让出CPU,使同优先级的其他线程运行。如果不存在有机会运行的线程,yield()方法将直接返回,线程继续;join(),当前线程暂停,等待线程类对象运行结束。所以选项A和B正确。相同优先级的线程有可能采用分时调度也有可能是线程逐个运行,由具体JVM而定。

第9题:

下列说法正确的是()。

A.线程的终止一般可通过两种方法来实现,自然撤销(线程执行完)或是被停止(调用stop()方法)

B.一个暂时终止运行的线程(例如,睡眠或阻塞)在排除了终止原因后直接运行

C.一个线程因为输入输出操作被阻塞时,执行resume()方法可以使其恢复就绪状态

D.调用了suspend()方法,也可以使线程进入死亡状态


正确答案:A

第10题:

下述是关于进程和线程的说法:

①在传统的OS中,进程是系统分配资源和进行调度的基本单位。而线程则是系统分配资源的基本单位。

②进程就是线程。

③线程可以创建另外一个线程,同一个进程中的多个线程可以并发执行。线程也有就绪、运行和阻塞三种基本状态。

其中正确的个数为______。

A.0

B.1

C.2

D.3


正确答案:B
解析:在传统的OS中,进程是系统分配资源和进行调度的基本单位。线程则是系统实施调度的基本的、独立的单位。线程基本上不拥有资源,只拥有一点运行必不可少的资源。引入线程的原因:由于在进程的创建、撤消和切换过程中,系统付出的时空代价较大,因此在系统中的进程数目不宜过多,进程切换不能过于频繁,这就限制了并发程度的提高。引入线程之后,将传统的进程的两个基本属性分开,也就是说在传统的OS中,进程是系统分配资源和进行调度的基本单位,当引入线程之后,进程只作为分配资源的基本单位,而将线程作为调度的基本单位。可以通过创建线程来完成任务,提高了并发程度。线程可以创建另外一个线程,同一个进程中的多个线程可以并发执行。线程也有就绪、运行和阻塞三种基本状态。

更多相关问题