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的状态,那么这样的线程,就必须使用pthread_join来回收,否则程

本文介绍了如何在C++中封装POSIX线程库,重点讲解了线程的创建、回收及其状态。线程创建时通过`pthread_create`函数,线程默认为Joinable状态,需要使用`pthread_join`回收。线程封装成C++类时,考虑了无拷贝构造和赋值语义,使用静态成员函数作为线程执行体,并通过纯虚函数实现子类重写。
最低0.47元/天 解锁文章
2851

被折叠的 条评论
为什么被折叠?



