有如下C语言程序针对上述程序,下列叙述中哪一个是正确的()A.线程th_f运行后主动退出B.线程th_f运行后等待一个特定的线程退出C.线程th_f运行后主动释放CPU给其他线程D.线程th_f运行后进入等待态

题目

有如下C语言程序针对上述程序,下列叙述中哪一个是正确的()

A.线程th_f运行后主动退出

B.线程th_f运行后等待一个特定的线程退出

C.线程th_f运行后主动释放CPU给其他线程

D.线程th_f运行后进入等待态

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

第1题:

下列关于线程的说法中,正确的是

A.一个线程一旦被创建,就立即开始运行

B.使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行

C.当运行状态的线程因为调用了yield()方法而停止运行,它一定被放在可运行线程队列的前面

D.当因等待对象锁而被阻塞的线程获得锁后,将直接进入运行状态


正确答案:B
解析:线程被创建后,如果调用start()方法,线程便处于就绪状态,即可执行状态,但并不一定立即得到执行。当调用了yield()方法之后,线程放在处于同一个优先级的可执行的线程队列的后面。当阻塞的线程获得锁后,将进入就绪状态,并不一定立即执行。

第2题:

为应用程序开发人员上班Certkiller.com。您需要修改应用程序的代码。应用程序使用两个线程命名线程A和线程B.要完成执行之前线程开始执行线程B。您将如何完成这项任务?()

A.定义线程A在较低的优先级运行。

B.定义线程B在更高的优先级运行。

C.执行WaitCallback委托来同步线程。

D.调用线程A睡眠的方法

E.调用线程A自旋锁的方法


参考答案:C

第3题:

在Pthread线程包中,线程操作pthread_yield表示的是

A.线程让出CPU

B.创建一个线程

C.阻塞一个线程

D.等待一个特定的线程退出


正确答案:A

第4题:

关于线程,下列叙述正确的是______。

A.线程本身也是一个程序,它自己能独立运行

B.多个线程中,每一个线程都有自己独立的一块内存空间、一组系统资源

C.线程就是一个程序内部的顺序控制流

D.多线程就是多次启动一个程序


正确答案:C
解析:线程本身并不是程序,而是一个程序内部的顺序控制流,它自己本身并不能运行,必须在程序中运行,所以选项A错误。对于进程而言,每个进程都有自己独立的一块内存空间、一组系统资源。而线程不同于进程,多个线程共享一块内存空间和一组系统资源,所有选项B错误。多线程指在一个程序中可以定义多个线程并同时运行它们,每个线程可以执行不同的任务,即在同一个程序中多行语句同时执行,而不是多次启动一个程序,所以选项D错误。多线程是针对一个程序而言的,代表着一个程序内部可以同时执行的线程个数。只有选项C叙述正确。

第5题:

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

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

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

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

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


正确答案:A

第6题:

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

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

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

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

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


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

第7题:

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

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

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

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

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


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

第8题:

在多线程编程时,当某子线程的daemon属性为False时,主线程结束时会检测该子线程是否结束,如果该子线程尚未运行结束,则主线程会等待它完成后再退出。

此题为判断题(对,错)。


正确答案:√

第9题:

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

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

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

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

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


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

第10题:

当-个应用程序的所有非守护线程终止运行时,但仍然有守护线程在运行,应用程序将( )。A.运行SXB

当-个应用程序的所有非守护线程终止运行时,但仍然有守护线程在运行,应用程序将( )。

A.运行

B.阻塞

C.终止

D.休眠


正确答案:C
本题考查线程的机制。守护线程是-类特殊的线程,它和普通线程的区别在于它并不是应用程序的核心部分,当一个应用程序的所有非守护线程终止运行时,即使仍然有守护线程在运行,应用程序也将终止;反之,只要有一个非守护线程在运行,应用程序就不会终止。守护线程-般被用于在后台为其他线程提供服务。可以通过调用方法isDaemon()来判断一个线程是否是守护线程,也可以调用方法setDaemon()来将一个线程设为守护线程。

更多相关问题