[22][10][单选]有如下 C 语言程序:
//program Hello/ void *a_in_Hello(void *arg { printf("Hello, World!"; pthread_yield(; } int main(void { pthread_t pthread_1; int sta; sta = pthread_create(&pthread_1, NULL, a_in_Hello, NULL; if (sta == 0 printf("Ops, I can not create thread\n"; exit(NULL; } 上述程序经过正确编译链接后执行,当 pthread_yield 运行成功时,进程 Hello 有多少个线程?
0
1
2
3
答案
2
解析
【解析】pthread_yield 作用是释放 CPU 来运行另外一个线程。当主程序发布之后,题目中主程序变量为 sta,初始值为 0,创建线程之后比较两个线程 ID 是否相等,所以当 pthread_yield 运行成功后,进程 Hello 有 2 个线程,故本题答案选择 C 选项。
【涉及考点】
C 语言线程相关概念
转载请注明出处。