一、线程基本操作
1.1、相关接口函数
1、pthread_create 函数
函数功能:创建一条线程
函数原型:int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
void *(*start_routine) (void *), void *arg)
参数:thread--------->存放线程的 id
attr------------>线程的属性,一般写 NULL
start_routine--->线程处理函数
arg------------->线程处理函数的参数
返回值:0------------->成功
非0----------->失败,且返回错误码
2、pthread_exit 函数
函数功能:退出线程
函数原型:void pthread_exit(void *retval)
参数:retval-------->存放线程退出值
3、pthread_join 函数
函数功能:回收线程
函数原型:int pthread_join(pthread_t thread, void **retval);
参数:thread------>线程 pthread_create 函数产生的线程id
retval------>存放退出线程的信息
返回值:0-------->成功
其他------>错误码
1.2、事例代码
/***********头文件自己写吧******/
void *routine(void *arg)
{
printf("doing clean: %s\n", (char *)arg);
pthread_exit("quit routine");
}
int main(void)
{
char buf[10] = "hello";
pthread_t pthid;
// 创建一条线程
pthread_create(&pthid, NULL, routine, buf);
void *quit;
printf("doing kill\n");
// 阻塞等待创建的线程退出
pthread_join(pthid, (void **)(&quit));
}