Linux:C++ 封装pthread

这篇博客讲述了在Linux环境下,如何将pthread库封装到C++类中,以实现更方便的线程管理和资源释放。主要内容包括线程的启动、停止以及在停止时确保资源的正确释放。文中提到了pthread的取消点概念,并分享了如何设置取消点来确保线程在适当的时候退出。同时,还探讨了如何在静态线程函数中使用类成员变量。
摘要由CSDN通过智能技术生成

Linux:C++ 封装pthread

项目要用到多线程,主要包括:
通信一个线程,媒体处理一个线程,还有个主线程
主要使用方法是通信线程能够打开或者停止媒体处理线程,同时要保证资源释放的安全
由于平台是Linux,打算使用pthread,顺道学习一哈

目标

将pthread封装进类中;方便的线程停止;停止线程时的资源释放

背景知识

pthread中文教程:https://hanbingyan.github.io/2016/03/07/pthread_on_linux/
主要的几个函数:

//线程创建
int pthread_create (pthread_t *thread,pthread_attr_t *attr,void *(*start_routine)(void *),void *arg)
//取消线程,仅向工作线程发出信号
int pthread_cancel (pthread_t thread)
//等待停止,用在其他线程
int pthread_join(pthread_t threadid, void **value_ptr)

取消点:
“线程取消的方法是向目标线程发Cancel信号,但如何处理Cancel信号则由目标线程自己决定,或者忽略、或者立即终止、或者继续运行至Cancelation-point(取消点),由不同的Cancelation状态决定。

线程接收到CANCEL信号的缺省处理(即pthread_create()创建线程的缺省状态)是继续运行至取消点,也就是说设置一个CANCELED状态,线程继续运

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值