CPU调度当前线程时,其它线程被(),当前线程处于()状态。

题目
填空题
CPU调度当前线程时,其它线程被(),当前线程处于()状态。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下列哪个选项不能使当前线程停止执行()。

A.一个异常被抛出

B.线程执行了sleep()调用

C.高优先级的线程处于可运行状态

D.当前线程产生了一个新线程


参考答案:D

第2题:

使线程放弃当前分得的CPU时间,但不使线程阻塞,即线程仍处于可执行状态,随时可能再次分得CPU时间的方法是( )。

A.sleep()方法

B.suspend()方法

C.yield()方法

D.wait()方法


正确答案:C
解析:本题考查对线程阻塞概念的理解程度。为了解决对共享存储区的访问冲突,Java引入了同步机制。但当多个线程对共享资源访问时,显然同步机制已经不够了,因为在任意时刻所要求的资源不一定已经准备好了被访问,反过来,同一时刻准备好了的资源也可能不止1个。为了解决这种情况下的访问控制问题,Java引入了对阻塞机制的支持。阻塞指的是暂停一个线程的执行以等待某个条件发生(如某资源就绪),学过操作系统的同学对它一定已经很熟悉了。Java提供了大量方法来支持阻塞,下面逐一分析。选项A错误,slccp()允许指定以毫秒为单位的一段时间作为参数,它使得线程在指定的时间内进入阻塞状态,不能得到CPU时间,指定的时间一过,线程重新进入可执行状态。典型地,slecp()被用在等待某个资源就绪的情形:测试发现条件不满足后,让线程阻塞一段时间后重新测试,直到条件满足为止。选项B错误,suspend()和resume()两个方法常配套使用,suspcnd()使得线程进入阻塞状态,并且不会自动恢复,必须其对应的resume()被调用,才能使得线程重新进入可执行状态。典型地,suspend()和resume()被用在等待另一个线程产生的结果的情形:测试发现结果还没有产生后,让线程阻塞,另一个线程产生了结果后,调用resume()使其恢复。选项C正确,yield()使得线程放弃当前分得的CPU时间,但是不使线程阻塞,即线程仍处于可执行状态,随时可能再次分得CPU时间。调用yield()的效果等价于调度程序认为该线程已执行了足够的时间从而转到另一个线程。选项D错误,wait()和notify()两个方法常配套使用,wait()使得线程进入阻塞状态,它有两种形式,一种允许指定以毫秒为单位的一段时间作为参数,另一种没有参数,前者当对应的notify()被调用或者超出指定。

第3题:

线程对象的___________方法用来阻塞当前线程,指定线程运行结束或超时后继续运行当前线程。


正确答案:join()

第4题:

线程的______方法只给具有与当前线程相同优先级的线程运行的机会。


正确答案:yield()
yield()

第5题:

内存是进程范围or线程范围;____

CPU 调度时,针对进程 or线程;____

函数调用堆栈,针对进程or线程。____


正确答案:
 

第6题:

Thread类的方法中,toString( )方法的作用是( )。

A.只返回线程的名称

B.返回当前线程所属的线程组的名称

C.返回当前线程对象

D.返回线程的字符串信息


正确答案:D

第7题:

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

A.线程一旦创建,则立即自动运行

B.线程创建后需要调用start()方法,将线程置于可运行状态

C.线程处于可运行状态,意味着它可以被调度

D.调用线程的start()方法后,线程也不一定能立即执行


正确答案:A

第8题:

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

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

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

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

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


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

第9题:

下列关于线程状态和生命周期的说法不正确的是

A.一个线程组内不仅可以包含线程,还可以包含其他线程组

B.线程在终止状态可以调用start()方法使它可运行

C.在Java中,最顶层的线程组是main

D.线程执行过程中,有一个更高优先级的线程进入可运行状态,这个线程立即被调度执行,当前线程占有的CPU被抢占


正确答案:B
解析:终止状态是线程执行结束的状态,没有方法可以改变它。

第10题:

下列方法被调用后,一定使调用线程改变当前状态的是( )。A.notify( )B.yield( )SXB

下列方法被调用后,一定使调用线程改变当前状态的是( )。

A.notify( )

B.yield( )

C.sleep( )

D.isAlive( )


正确答案:C
线程调用sleep函数后,使当前线程进入停滞状态。yield函数可使线程进入可执行状态,排程器从可执行状态的线程中重新排程,调用了yield函数的线程有可能被马上执行,也有可能不会马上执行。notify函数从线程等待池中移走任意-个线程,并把它放到锁标志等待池中,其状态仍旧是等待。所以只有sleep-定会改变线程状态。

更多相关问题