itgle.com
更多“可确定当前占有CPU的线程调用的方法是()”相关问题
  • 第1题:

    resume()力法恢复哪些线程的执行

    A.通过调用stop()方法而停止的线程

    B.通过调用sleep()方法而停止运行的线程

    C.通过调用wait()方法而停止运行的线程

    D.通过调用suspend()方法而停止运行的线程


    正确答案:D
    解析:本题考查resume()方法的使用。在Thread的API文档中的说明是该方法恢复被挂起(suspend)的线程。该方法首先调用该线程的无参的checkAccess()方法,这可能在当前线程上抛出SecurityException异常,如果该线程是活着的(alive)但被挂起(suspend),它被恢复并继续它的执行进程。

  • 第2题:

    方法resume()负责恢复哪些线程的执行( )。

    A.通过调用stop()方法而停止的线程

    B.通过调用sleep()方法而停止运行的线程

    C.通过调用wait()方法而停止运行的线程

    D.通过调用suspend()方法而停止运行的线程


    正确答案:D
    解析:本题是考查线程中能引起resume()方法调用的情况,在Thread的API文档中的说明是该方法恢复被挂起的(suspendeD) 线程。该方法首先调用该线程的无参的checkAccess()方法,这可能在当前线程上抛出SecurityExcep tion异常,如果该线程是活着的(alive)但被挂起(suspenD) ,则它被恢复并继续执行。

  • 第3题:

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

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

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


    正确答案:
     

  • 第4题:

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

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

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

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

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


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

  • 第5题:

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

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

    A.notify( )

    B.yield( )

    C.sleep( )

    D.isAlive( )


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

  • 第6题:

    在以下哪种情况下,线程进入就绪状态?()

    • A、线程调用了sleep()方法时
    • B、线程调用了join()方法(终止)
    • C、线程调用了yield()方法时
    • D、线程调用了notify()方法

    正确答案:D

  • 第7题:

    下面关于Java中线程的说法不正确的是()

    • A、调用join()方法可能抛出异常InterruptedException。
    • B、sleep()方法是Thread类的静态方法。
    • C、调用Thread类的sleep()方法可终止一个线程对象。
    • D、线程启动后执行的代码放在其run方法中。

    正确答案:C

  • 第8题:

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

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

    正确答案:B,C

  • 第9题:

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

    正确答案: 挂机,运行
    解析: 暂无解析

  • 第10题:

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

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

    B

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

    C

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

    D

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


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

  • 第11题:

    单选题
    下面关于Java中线程的说法不正确的是()
    A

    调用join()方法可能抛出异常InterruptedException。

    B

    sleep()方法是Thread类的静态方法。

    C

    调用Thread类的sleep()方法可终止一个线程对象。

    D

    线程启动后执行的代码放在其run方法中。


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

  • 第12题:

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

    notify()

    B

    yield()

    C

    sleep()

    D

    isAlive()


    正确答案: C
    解析:
    A项,notify()方法是用来唤醒一个线程,需要唤醒的线程不一定能够被唤醒,所以线程不一定改变状态;B项,yield()方法是放弃当前获得的CPU时间片,回到可运行状态,这时与其他进程处于同等竞争状态,有可能会接着又让这个进程进入运行状态,所以线程状态不一定改变;D项,isAlive()方法是判断线程当前状态是否处于Alive状态,不改变线程状态;而C项,调用sleep()方法之后,线程一定进入阻塞状态,所以C项正确。

  • 第13题:

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

  • 第14题:

    下列说法中错误的一项是

    A.当线程需要在synchronized块中等待共享数据状态改变时,则需要调用wait()方法

    B.当线程需要在synchronized块中等待共享数据状态改变时,则需要调用notify()方法

    C.线程在synchronized块中执行完操作后,调用notify()方法通知正在等待的线程重新占有锁

    D.wait()和notify()可以实现线程的同步操作


    正确答案:B
    解析:本题考查线程间交互的概念。当线程进入synchronized块后,共享数据的状态并不一定满足该线程的需要,它要等待其他线程将共享数据改变为所需要的状态后才能继续执行,但由于此时它占有了该对象的锁,其他线程无法对共享数据进行操作,此时线程调用wait()方法进入等待状态,并且暂时释放共享数据的对象锁,其他线程可以获得该对象锁,进入synchronized块进行操作,操作完成之后,再调用notify()方法通知等待的线程重新占有锁,这样就实现了线程的同步操作。由此可见,wait()方法是线程需要在 synchronized块中等待共享数据状态改变时调用,而notify()方法是线程在synchronized块中执行完操作后调用,用来通知正在等待的线程重新占有锁,选项B的说法错误。

  • 第15题:

    resume方法恢复( )的执行。

    A.通过调用stop方法而停止的线程

    B.通过调用sleep方法而停止运行的线程

    C.通过调用wait方法而停止运行的线程

    D.通过调用suspend方法而停止运行的线程


    正确答案:D
    D。【解析】本题考查resume方法的使用。在Thread的API文档中的说明是该方法恢复被挂起(suspende)的线程。该方法首先调用该线程的无参的checkAccess方法,这可能在当前线程上抛出SecurityExeeption异常,如果该线程是活着的(alive)但被挂起(suspend),它被恢复并继续它的执行进程。

  • 第16题:

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

    A.notify

    B.yield

    C.sleep

    D.isAlive


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

  • 第17题:

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

    A.time( )

    B.yield( )

    C.load( )

    D.min( )


    正确答案:B
    本题考查线程阻塞的概念。yield()方法使得线程放弃当前分得的CPU时间,但是不使线程阻塞,即线程仍处于可执行状态,随时可能再次分得CPU时间。调用yield()的效果等价于调度程序认为该线程已执行了足够的时间从而转到另-个线程。

  • 第18题:

    要将某个线程设置为后台线程,需要调用该线程的()方法,该方法必须在()方法之前调用


    正确答案:setDaemon(true);start()

  • 第19题:

    如果一个方法声明为同步方法,在有些情况下仍然需要其他线程访问该数据,可在该方法中使当前线程等待调用的方法是()

    • A、sleep()
    • B、stop()
    • C、wait()
    • D、notify()

    正确答案:C

  • 第20题:

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

    正确答案: 就绪,运行
    解析: 暂无解析

  • 第21题:

    单选题
    在以下哪种情况下,线程进入就绪状态?()
    A

    线程调用了sleep()方法时

    B

    线程调用了join()方法(终止)

    C

    线程调用了yield()方法时

    D

    线程调用了notify()方法


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

  • 第22题:

    填空题
    要将某个线程设置为后台线程,需要调用该线程的()方法,该方法必须在()方法之前调用

    正确答案: setDaemon(true),start()
    解析: 暂无解析

  • 第23题:

    单选题
    相同优先级的若干线程都处于就绪状态,如果要使当前线程放弃处理器资源,让给其后的线程,应调用方法()
    A

    init()

    B

    stop()

    C

    sleep()

    D

    start()


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