[24][10][单选]对于如下C语言程序:
//* program Hello */ void *p_th_Hello (void *sq { printf("Hello World %d", sq; pthread_exit(0; } { int main(void { int st_a; pthread_t p_tid[4]; for (st_a = 0; st_a < 4; st_a++ { pthread_create(&p_tid[st_a], NULL, p_th_Hello, (void *st_a; } exit(0; } } 该程序经正确编译链接并运行成功后,将得到下列哪一个结果?
Hello World 1 Hello World 0 Hello World 3 Hello World 2
Hello World 0 1 2 3 4
Hello World Hello World Hello World Hello World
Hello World 1
答案
Hello World 1 Hello World 0 Hello World 3 Hello World 2
解析
创建一个新线程需要使用pthread_create,新创建的线程标识符作为函数值返回,根据题意,对于0、1、2、3时,线程是正常创建的,所以程序运行4次,那么printf打印输出就是4个结果Hello World 0 Hello World 1 Hello World 2 Hello World 3故选择该选项。涉及考点为第3章进程线程模型。
转载请注明出处。