多线程的函数说明

条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:
(1)一个线程等待"条件变量的条件成立"而挂起;
(2)另一个线程使"条件成立"(给出条件成立信号)。
(3)为了防止竞争,条件变量的使用总是和一个互斥锁结合在一起。

  1. int pthread_cond_init(pthread_cond_t *cond, pthread_condattr_t *cond_attr)
    作用:动态创建条件变量

  2. pthread_mutex_lock
    作用:互斥锁上锁

  3. pthread_mutex_unlock
    作用:互斥锁解锁

  4. pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)
    作用:等待条件变量,挂起线程。释放mutex,进入阻塞状态,等待被别的线程唤醒。阻塞等待的条件满足被唤醒后,再次获得mutex。
    说明:当线程执行pthread_cond_wait时,一定是处于某个临界区,正在访问共享资源,存在一个mutex与该临界区相关联。因此,在阻塞前,必须释放mutex;被唤醒后,仍然处于临界区,因此需要再次获得mutex。
    pthread_cond_timedwait()
    作用:等待条件变量,挂起线程,如果到了timeout,线程自动解除阻塞。

  5. pthread_cond_signal
    作用:激活等待列表中的线程
    pthread_cond_broadcast()
    作用:激活所有等待线程列表中最先入队的线程

  6. pthread_mutex_destroy
    作用:销毁线程锁

注意:上面这几个函数都是原子操作,必须配合使用。

参考链接: 1
参考链接: [2]https://blog.csdn.net/lyx_323/article/details/82897192

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值