2016英特尔在线笔试题(C语言)

#include<stdio.h>
#include<string.h>
#include <pthread.h>

void* print1(void* data){
    printf("1 ");
}

void* print2(void* data){
    printf("2 ");
}

void* print3(void* data){
    printf("3 ");
}

int main(void){
    pthread_t t,t1,t2;

    pthread_create(&t,0,print1,NULL);
    pthread_create(&t1,0,print2,NULL);
    pthread_create(&t2,0,print3,NULL);

    pthread_join(t,NULL);
    pthread_join(t1,NULL);
    pthread_join(t2,NULL);
    printf("\n");
}

上面程序的输出是什么(  )

A.   1  2 3
B.    1 3 2
C.    3 2 1
D.   不确定

答案D 解析:

pthread_create 是类Unix操作系统(Unix、Linux、Mac OS X等)的创建线程的函数。

头文件:1
#include<pthread.h>
1
2
int pthread_create(pthread_t *tidp,const pthread_attr_t *attr, (void*)(*start_rtn)(void*),void *arg);
pthread_join 用来等待一个线程的结束。
头文件 : #include <pthread.h>
函数定义: int pthread_join(pthread_t thread, void **retval);
描述 :pthread_join()函数,以阻塞的方式等待thread指定的线程结束。当函数返回时,被等待线程的资源被收回。如果线程已经结束,那么该函数会立即返回。并且thread指定的线程必须是joinable的。
参数 :thread: 线程标识符,即线程ID,标识唯一线程。retval: 用户定义的指针,用来存储被等待线程的返回值。
返回值 : 0代表成功。 失败,返回的则是错误号。
编译命令: gcc test.c -lpthread -o test


posted @ 2016-03-20 15:10  YuntaoWu  阅读(390)  评论(0编辑  收藏  举报