有如下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运行后进入等待态


相似考题
更多“有如下C语言程序针对上述程序,下列叙述中哪一个是正确的()A.线程th_f运行后主动退出B.线程th_f运行后等待一个特定的线程退出C.线程th_f运行后主动释放CPU给其他线程D.线程th_f运行后进入等待态”相关问题
  • 第1题:

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

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

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

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

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

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


    参考答案:C

  • 第2题:

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

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

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

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

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


    正确答案:A

  • 第3题:

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

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

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

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

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


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

  • 第4题:

    下列关于线程的叙述中,不正确的是

    A.线程是进程中的一个实体,是CPU调度和分派的基本单位

    B.一个线程可以创建和撤销另一个线程

    C.同一个进程中的多个线程之间不可以并发执行

    D.线程也同样有就绪、等待和运行3种基本状态


    正确答案:C
    解析:线程是进程中的一个实体,是CPU调度和分派的基本单位。一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行。线程也同样有就绪、等待和运行3种基本状态。注意:同一个进程中的多个线程之间可以并发执行。

  • 第5题:

    在Pthread线程包中,线程操作pthread_join的含意是

    A.创建一个新的线程

    B.撤销一个线程

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

    D.参加一个新的线程


    正确答案:C

  • 第6题:

    进程(线程)调度的时机有

    A.运行的进程(线程)运行完毕

    B.运行的进程(线程)自我阻塞

    C.运行的进程(线程)的时间片用完

    D.运行的进程(线程)所需资源没有准备好

    E.运行的进程(线程)出现错误


    正确答案:ABCDE

  • 第7题:

    在Pthread线程包中,线程操作pthread_join的含意是()

    • A、创建一个新的线程
    • B、撤销一个线程
    • C、等待一个特定的线程退出
    • D、参加一个新的线程

    正确答案:C

  • 第8题:

    程序的创建有哪几步()。

    • A、启动线程
    • B、指定线程运行的起始点
    • C、为线程对象分配内存运行空间
    • D、在主程序中创建线程对象
    • E、建立线程类

    正确答案:A,D,E

  • 第9题:

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


    正确答案:正确

  • 第10题:

    单选题
    在Pthread线程包中,线程操作pthread_join的含意是()
    A

    创建一个新的线程

    B

    撤销一个线程

    C

    等待一个特定的线程退出

    D

    参加一个新的线程


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

  • 第11题:

    单选题
    在Pthread线程包中,线程操作pthread_yield表示的是()。
    A

    线程让出CPU

    B

    创建一个线程

    C

    阻塞一个线程

    D

    等待一个特定的线程退出


    正确答案: D
    解析: 线程操作pthread_yield表示线程让出CPU。故选择A选项。

  • 第12题:

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

    B


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

  • 第13题:

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

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

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

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

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


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

  • 第14题:

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

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

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

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

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


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

  • 第15题:

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

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

    A.运行

    B.阻塞

    C.终止

    D.休眠


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

  • 第16题:

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

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

    A.运行

    B.阻塞

    C.终止

    D.休眠


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

  • 第17题:

    有如下C语言程序 void * th_f(void * arg) { printf("Hello World"); pthread_join(2); } int main(void) { pthread_t tid; int st; st = pthread_create(&tid, NULL, th_f, NULL); if(st==0) printf("Oops, I can not createthread\n"); exit(NULL); } 针对上述程序,下列叙述中哪一个是正确的?

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

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

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

    D.线程th_f运行后进入死循环


    正确答案:B

  • 第18题:

    有如下C语言程序 void * th_f(void * arg) { printf("Hello World"); pthread_yield(0); } int main(void) { pthread_t tid; int st; st = pthread_create(&tid, NULL, th_f, NULL); if(st==0) printf("Oops, I can not createthread\n"); exit(NULL); } 针对上述程序,下列叙述中哪一个是正确的?

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

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

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

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


    正确答案:C

  • 第19题:

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

    • A、线程让出CPU
    • B、创建一个线程
    • C、阻塞一个线程
    • D、等待一个特定的线程退出

    正确答案:A

  • 第20题:

    线程结束等待或者阻塞状态后,会进入运行状态


    正确答案:错误

  • 第21题:

    单选题
    以下关于线程异步问题的说法不正确的是()
    A

    线程在应用程序开发过程中负责分担进程的耗时计算工作。

    B

    一个进程中如果需要多个线程共同协作才能完成业务计算的话,往往会涉及到线程之间的数据通讯。

    C

    线程依靠CPU调度分配时间片获得运行机会,当CPU时间片耗尽,线程将会停止运行等待CPU的再次分配。

    D

    由于线程的运行与停止是可控的,所以当多个线程之间需要同时对一块进程中的共享内存进程操作的时候,就有可能发生线程异步交互错误。


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

  • 第22题:

    多选题
    程序的创建有哪几步()。
    A

    启动线程

    B

    指定线程运行的起始点

    C

    为线程对象分配内存运行空间

    D

    在主程序中创建线程对象

    E

    建立线程类


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

  • 第23题:

    单选题
    下列关于线程的说法中,正确的是(  )。
    A

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

    B

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

    C

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

    D

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


    正确答案: A
    解析:
    A项和B项,在Java中,调用一个线程类的构造方法,便创建了一个线程,新建的线程调用start()方法将使线程的状态从New转换为Runnable,Runnable表示系统处于运行就绪状态,此时线程仅仅是可以运行,但不一定在运行中;C项,yield()方法使具有与当前线程相同优先级的线程有运行的机会,如果没有同等优先级的线程是可运行状态,yield()方法将什么也不做,只是使当前线程重新回到可执行状态,所以执行yield()的线程有可能在进入到可执行状态后马上又被执行,不一定被放在可运行线程队列的前面;D项,如果线程中使用synchronized来请求对象的锁,但没有获得时,进人对象锁阻塞状态,该状态下的线程当获得对象锁后,将进入可运行状态。