更多“程的基本控制中,哪个方法使比其低的优先级线程先运行?A.sleep( )B.yield( )C.join( )D.stop( ) ”相关问题
  • 第1题:

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

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

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

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

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


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

  • 第2题:

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

    A.sleep()

    B.stop()

    C.yield()

    D.wait()


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

  • 第3题:

    使线程放弃当前分得的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()被调用或者超出指定。

  • 第4题:

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

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

    A.sleep方法的时间到

    B.获得了对象的锁

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

    D.wait方法结束


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

  • 第5题:

    下列说法正确的是______。

    A.即使高优先级的线程调用slee()方法睡眠时,低优先级的线程也没有办法获得处理器资源

    B.一个暂时终止运行的线程,在排除了终止原因后直接运行

    C.一个正在执行的线程使用yield()方法将处理器让出给同优先级的其他线程

    D.调用suspend()方法暂停自己的线程,也可以自行调用resume()方法恢复自身


    正确答案:C
    解析:线程调用sleep()方法后,相同优先级的线程和低优先级的线程都将获得可执行的机会,所以选项A错误。yield()方法使当前线程暂停执行,以允许其他线程执行。调用yield()方法后,线程仍处于可运行状态,此时,可以选择其他已进入可运行状态且优先级相同的线程执行。若无同优先级线程,当前线程会继续执行,所以选项C正确。调用suspend()方法使线程暂停执行,由可运行状态切换到不可运行状态,要想恢复执行必须由其他线程而非自身来调用resume()方法,所以选项B和D错误。

  • 第6题:

    下列哪个方法可以使具有与当前线程相同优先级的线程有运行的机会?

    A.sleep( )

    B.yield( )

    C.interrupt( )

    D.stop( )


    正确答案:B
    解析:如果有其他的线程与当前线程具有相同的优先级并且是可运行的,该方法将把调用yield()的线程放人可运行线程池并允许其他线程运行;如果没有同等优先级的线程是可运行状态,yield()方法什么也不做,即该线程继续运行。

  • 第7题:

    线程可以用yield()方法使同优先级的线程运行。


    正确答案:正确

  • 第8题:

    线程可以调用yield方法使低优先级的线程运行。


    正确答案:错误

  • 第9题:

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

    • A、调用线程的sleep()方法,可以使比当前线程优先级低的线程获得运行机会
    • B、调用线程的yeild()方法,只会使与当前线程相同优先级的线程获得运行机会
    • C、具有相同优先级的多个线程的调度一定是分时的
    • D、分时调度模型是让所有线程轮流获得CPU使用权

    正确答案:B,C

  • 第10题:

    单选题
    线程控制方法中,yield()的作用是()
    A

    返回当前线程的引用

    B

    使比其低的优先级线程执行

    C

    强行终止线程

    D

    只让给同优先级线程运行


    正确答案: D
    解析: 暂无解析

  • 第11题:

    判断题
    在Java中,高优先级的可运行线程会抢占低优先级线程。
    A

    B


    正确答案:
    解析: 暂无解析

  • 第12题:

    填空题
    Thread类提供了一系列基本线程控制方法,如果我们需要让与当前进程具有相同优先级的线程也有运行的机会则可以调用()方法。

    正确答案: yield()
    解析: 暂无解析

  • 第13题:

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

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

    A.sleep( )

    B.stop( )

    C.yield( )

    D.wait( )


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

  • 第14题:

    调用线程的下列方法中,不能使线程暂停的方法是( )。

    A.sleep()

    B.yield()

    C.stop()

    D.join()


    正确答案:C
    解析:sleep()方法的功能是使线程暂停,让出CPU,使更低优先级的线程运行;yield()方法的功能是使线程暂停,让出CPU,使同优先级的其他线程运行;join()方法的功能是使当前线程暂停,等待到某线程类对象运行结束;stop()方法的进程是强行中止线程运行。

  • 第15题:

    可以使当前同级线程重新获得运行机会的方法是

    A.sleep()

    B.join()

    C.yield()

    D.interrupt()


    正确答案:C
    解析:本题考查线程的基本控制。Thread类提供的基本线程控制方法包括:sleep()一使比其低的优先级线程运行,可以让一个线程暂停运行一段固定的时间:yield()——使具有与当前线程相同优先级的线程有运行的机会;join()——使当前线程暂停执行,等待调用该方法的线程结束后,再恢复执行:interrupt()——中断线程的阻塞状态,并且线程接收到InterruptException异常;根据上述介绍可知,只有yield()方法可以使当前同级线程重新获得运行机会。因此,本题的正确答案是C。

  • 第16题:

    下列关于线程的优先级叙述,不正确的是( )。

    A.线程的优先级从其父线程继承而来

    B.Java的线程调度是基于优先级的抢先式调度

    C.在Java中,总是选择高优先级的线程先执行

    D.线程的优先级与线程组一样,程创建时获得,在运行过程中只能读取,不能更改


  • 第17题:

    可以指定线程阻塞多长时间的方法是下列哪个方法?

    A.sleep( )

    B.yield( )

    C.interrupt( )

    D.stop( )


    正确答案:A
    解析:sleep()方法使一个线程停止一段时间,方法的格式是staticvoidsleep(intmillseconD),休息时间以毫秒为单位计算。staticvoidsleep(intmillsecond,intnanoseconD),休眠时间以指定的毫秒与纳秒的和计算。选项B)yield()方法可以使具有与当前线程相同优先级的线程有机会运行,但它不能够指定时间。选项C)interrupt()方法使已经在阻塞状态下的线程的中断被清除。选项D)stop()方法用于强行终止线程

  • 第18题:

    Thread类提供了一系列基本线程控制方法,如果我们需要让与当前进程具有相同优先级的线程也有运行的机会则可以调用()方法。


    正确答案:yield()

  • 第19题:

    线程控制方法中,yield()的作用是()

    • A、返回当前线程的引用
    • B、使比其低的优先级线程执行
    • C、强行终止线程
    • D、只让给同优先级线程运行

    正确答案:D

  • 第20题:

    在Java中,高优先级的可运行线程会抢占低优先级线程。


    正确答案:正确

  • 第21题:

    判断题
    线程可以调用yield方法使低优先级的线程运行。
    A

    B


    正确答案:
    解析: 暂无解析

  • 第22题:

    判断题
    线程可以用yield()方法使同优先级的线程运行。
    A

    B


    正确答案:
    解析: 暂无解析

  • 第23题:

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

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

    B

    调用线程的yeild()方法,只会使与当前线程相同优先级的线程获得运行机会

    C

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

    D

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


    正确答案: C
    解析: 暂无解析