<mutex>注释4: 函 pthread_cond_init (),pthread_mutex_init (),pthread_mutex_lock(),pthread_mutex_unlock()

(21) 函 pthread_cond_init , 在 condition_variable 的初始化函数里,有这样的语句,可以参考 pthread 线程库的对条件变量的初始化代码:

在这里插入图片描述

++参考如下:

在这里插入图片描述

++ 举例:

在这里插入图片描述

++ 这里出现了 pthread 库里的大量的关键和重要的函数。 C++ 标准库的实现也依赖于 C 库,这些 C 库代码的学习,更有益于理解 C++ STL 库中的代码。随后依次给出上图中出现的 C 函数的知识介绍。

(22)函 pthread_mutex_init () , 上面是对条件变量的初始化,其实互斥量也是需要初始化的,但 C++ 标准库里缺乏 互斥量的具体的初始化的代码实现:

在这里插入图片描述

++ 范例介绍:

在这里插入图片描述

(23) 函 pthread_mutex_lock (),这是 pthread 库里的 C 语言的函数。对于 C++ 的 STL 库,将使用 mutex 类,调用 mutex 的成员函数来实现互斥量的加锁与解锁 :

在这里插入图片描述

(24) pthread_mutex_unlock ( )

在这里插入图片描述

(25)

谢谢

S32 record_stop(void) { pthread_mutex_lock(&g_record->thread_mutex); if (g_record->thread_state == THREAD_STATE_RUNNING) { g_record->thread_state = THREAD_STATE_STOPPED; } pthread_mutex_unlock(&g_record->thread_mutex); /* 通知线程退出可能等待的地方进入stop分支 */ pthread_mutex_lock(&g_record->status_mutex); pthread_cond_signal(&g_record->status_cond); pthread_mutex_unlock(&g_record->status_mutex); pthread_mutex_lock(&g_record->video_gop_mutex); pthread_cond_signal(&g_record->video_gop_cond); pthread_mutex_unlock(&g_record->video_gop_mutex); pthread_mutex_lock(&g_record->audio_gop_mutex); pthread_cond_signal(&g_record->audio_gop_cond); pthread_mutex_unlock(&g_record->audio_gop_mutex); #ifdef DUAL_CAM pthread_mutex_lock(&g_record->video2_gop_mutex); pthread_cond_signal(&g_record->video2_gop_cond); pthread_mutex_unlock(&g_record->video2_gop_mutex); #endif // call // if (!g_is_stream_open()) // { // pthread_mutex_lock(&g_record->video_call_gop_mutex); // pthread_cond_signal(&g_record->video_call_gop_cond); // pthread_mutex_unlock(&g_record->video_call_gop_mutex); // } pthread_mutex_lock(&g_record->audio_call_gop_mutex); pthread_cond_signal(&g_record->audio_call_gop_cond); pthread_mutex_unlock(&g_record->audio_call_gop_mutex); reset_push_sync_time(); STM_INFO("record stopped"); return OK; }这个是什么意思,为什么 pthread_mutex_lock(&g_record->audio_call_gop_mutex); pthread_cond_signal(&g_record->audio_call_gop_cond); pthread_mutex_unlock(&g_record->audio_call_gop_mutex);这些代表stopped
最新发布
11-06
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangzhangkeji

谢谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值