[21][10][单选]有如下 C 语言程序:
//program Hello/ void *th_Hello(void *arg { printf("Hello World"; pthread_join(2; } int main(void { pthread_t pid; int sta; sta = pthread_create(&pid, NULL, th_Hello, NULL; if(sta!= 0 printf("Oops, I can not createthread\n"; return 0; } 上述程序经过正确编译链接后执行,当 pthread_join 运行成功后,进程 Hello 有多少条线程?
1
2
3
0
答案
2
解析
创建一个新线程需要使用 pthread_create 调用。新创建线程的线程标识符作为函数值返回。当一个线程完成分配给它的工作时,可以通过调用 pthread_exit 终止,该调用终止该线程并释放它的栈。本题中程序变量为 sta,创建线程之后比较两个线程 ID 是否相等。所以当 pthread_join 运行成功后,进程 Hello 有 2 条线程。
涉及考点:第 3 章 进程线程模型
转载请注明出处。