#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>
头文件 : #include <pthread.h>
函数定义: int pthread_join(pthread_t thread, void **retval);
描述 :pthread_join()函数,以阻塞的方式等待thread指定的线程结束。当函数返回时,被等待线程的资源被收回。如果线程已经结束,那么该函数会立即返回。并且thread指定的线程必须是joinable的。
参数 :thread: 线程
标识符,即线程ID,标识唯一线程。retval: 用户定义的指针,用来存储被等待线程的返回值。
返回值 : 0代表成功。 失败,返回的则是错误号。