查看: 54|回覆: 0

线程相关函数-条件量

[複製鏈接]

1

主題

0

回帖

0

積分

热心网友

金币
0
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2009-7-27
發表於 2025-5-12 10:02:00 | 顯示全部樓層 |閲讀模式

使用条件量可以让不满足条件的线程处于挂起状态,等待条件满足时由别的线程进行唤醒

pthread_cond_init函数

此函数可以对条件量进行初始化

pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
int pthread_cond_init(pthread_cond_t *cond, const pthread_condattr_t *attr);
//cond:指向要初始化的条件变量的指针
//attr:指向条件变量属性的指针。如果为 NULL,则使用默认属性初始化条件变量;如果需要自定义属性,可以通过 pthread_condattr_init 和相关函数设置属性
//ret:成功返回0,失败返回错误码

pthread_cond_wait函数

此函数可以让等待条件的线程处于挂起状态,直到条件量满足

int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex);
//cond:指向要初始化的条件变量的指针
//mutex:指向互斥锁的指针
//ret:成功返回0,失败返回错误码

pthread_cond_broadcast 函数

此函数可以通知所有等待同一个条件量的线程

int pthread_cond_broadcast(pthread_cond_t *cond);
//cond:指向要初始化的条件变量的指针
//ret:成功返回0,失败返回错误码

pthread_cond_signal 函数

此函数可以通知所有等待条件量的线程

int pthread_cond_signal(pthread_cond_t *cond);
//cond:指向要初始化的条件变量的指针
//ret:成功返回0,失败返回错误码

pthread_cond_destroy函数

此函数可以销毁条件变量

int pthread_cond_destroy(pthread_cond_t *cond);
//cond:指向要初始化的条件变量的指针
//ret:成功返回0,失败返回错误码


来源:https://www.cnblogs.com/lradian/p/18872187
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部