下列关于线程调度的叙述中,错误的是( )。A.调用线程的sleep()方法,可以使比当前线程优先级低的线程获得运行机会B.调用线程的yield()方法,可以使与当前线程相同优先级的线程获得运行机会C.当有比当前线程优先级高的线程出现时,高优先级线程将抢占CPU并运行.D.具有相同优先级的多个线程的调度一定是分时的

题目

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

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

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

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

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


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

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

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

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

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

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


    正确答案:D
    解析:本题考查对线程调度的理解。线程属于考试难点,概念不容易理解,需多下功夫。
    调用线程的sleep()方法,可以使比其低的优先线程运行,所以选项A说法正确:调用线程的yeild()方法,只让给同优先级运行,所以选项B说法正确;Java的线程调度策略是一种基于优先级的抢先式调度,所以选项C说法正确:具有相同优先级的多个线程的调度可能是分时的,也可能是线程逐个运行,由具体JVM而定,选项D说法错误,故为所选。

  • 第2题:

    下列关于Thread类的线程控制方法的说法中错误的选项是()。

    A.线程可以通过调用sleep()方法使比当前线程优先级低的线程运行

    B.线程可以通过调用yield()方法使和当前线程优先级一样的线程运行

    C.线程的sleep()方法调用结束后,该线程进入运行状态

    D.若没有相同优先级的线程处于可运行状态,线程调用yield()方法时,当前线程将继续执行


    C

  • 第3题:

    在Java中,线程的调度策略采用_______,优先级高的线程比优先级低的优先执行。


    抢占式

  • 第4题:

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

    A.sleep( )

    B.yield( )

    C.interrupt( )

    D.stop( )


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

  • 第5题:

    调用 sleep() 方法可以使一个线程停止运行。 调用 sleep() 方法可以使一个线程停止运行。 调用sleep()方法可以使一个线程停止运行。


    阻塞状态