[25][10][单选]对于如下C语言程序:
/* program Hello */ void *p_th_Hello (void *sq printf("Hello World %d\n", sq; pthread_exit(0; int main(void int sta; pthread_t pid[3]; for(i = 0; i < 3; i++ { sta = pthread_create(&pid[i], NULL, p_th_Hello, (void *i; if(sta!= 0 exit(1; } return 0; 该程序经正确编译链接并运行成功后,将得到下列哪一个结果?
Hello World 0 Hello World 1 Hello World 2 Hello World 3
Hello World 1 Hello World 0 Hello World 2
Hello World
Hello World 0 1 2 3
答案
Hello World 0 Hello World 1 Hello World 2
解析
创建一个新线程需要使用pthread_create函数,新创建的线程执行函数作为参数返回,根据题意,等于0、1、2时,线程是正常创建的,所以程序运行3次,那么printf打印输出就是3个结果Hello World 0 Hello World 1 Hello World 2故选B选项。
转载请注明出处。