[20][10][单选]有如下 C 语言程序:
//program Hello/ void *th_Hello(void *arg { printf("Hello World"; pthread_exit(0; } 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_create 运行成功后,进程 Hello 有多少条线程
2
1
0
3
答案
2
解析
创建一个新线程需要使用 pthread_create 调用。新创建线程的线程标识符作为函数值返回。当一个线程完成分配给它的工作时,可以通过调用 pthread_exit 终止,该调用终止该线程并释放它的栈。本题中程序变量为 sta,创建线程之后比较两个线程 ID 是否相等。所以当 pthread_create 运行成功后,进程 Hello 有 2 条线程。故本题选择该选项。
涉及考点:第 3 章 进程线程模型
转载请注明出处。