C++封装POSIX 线程库(三)线程的封装
1.POSIX 线程简介
POSIX 提供以下函数:
1.1线程创建:
#include <pthread.h>
int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
void *(*start_routine) (void *), void *arg);
//返回:成功为0 失败为错误码
我们注意第3个参数是一个函数指针,它返回void *
参数也是void *
,这就是所谓线程
,第四个参数则是线程的参数,通常情况下,我们可能会这样写代码:
void *mythread(void *arg)
{
//tasks...
}
int main()
{
pthread_t tid1;
pthread_create(&tid1,NULL,mythread,NULL);
//main thread
pthread_join(tid1, NULL);
}
这里直接用函数名指代回调函数,也可以加上取地址符&
1.2线程回收:
首先得知道线程的两个状态:
Joinable
Detached
简单理解,如果一个线程是joinable的状态,那么这样的线程,