美文网首页
条件锁和互斥锁

条件锁和互斥锁

作者: 叶孤陈 | 来源:发表于2017-07-31 15:59 被阅读0次

互斥锁:体现的是一种竞争,我离开了,通知你进来。用于防止资源读写竞争关系。
条件锁:体现的是一种协作,我准备好了,通知你开始吧,一般用于线程同步,只共同完成一个任务。

In Thread1:

pthread_mutex_lock(&m_mutex);   
pthread_cond_wait(&m_cond,&m_mutex);   
pthread_mutex_unlock(&m_mutex);  

In Thread2:

pthread_mutex_lock(&m_mutex);   
pthread_cond_signal(&m_cond);   
pthread_mutex_unlock(&m_mutex);  

为什么要与pthread_mutex 一起使用呢? 这是为了应对 线程1在调用pthread_cond_wait()但线程1还没有进入wait cond的状态的时候,此时线程2调用了 cond_singal 的情况。 如果不用mutex锁的话,这个cond_singal就丢失了。加了锁的情况是,线程2必须等到 mutex 被释放(也就是 pthread_cod_wait() 释放锁并进入wait_cond状态 ,此时线程2上锁) 的时候才能调用cond_singal.

参考资料:http://blog.chinaunix.net/uid-27164517-id-3282242.html

相关文章

  • 【第58天】python全栈从入门到放弃

    1 递归锁Rlock()和互斥锁 递归锁 互斥锁 2 条件Condition 条件的例子 3 守护进程和守护线程与...

  • 多线程锁

    互斥锁: 条件锁:

  • 条件锁和互斥锁

    互斥锁:体现的是一种竞争,我离开了,通知你进来。用于防止资源读写竞争关系。条件锁:体现的是一种协作,我准备好了,通...

  • 互斥锁和条件锁

    互斥锁:多任务操作中,同时运行的多个任务可能需要访问同一个资源,那么线程中就有这么一把锁,限制对共享资源的访问。互...

  • 线程同步与互斥

    Linux--线程编程 多线程编程-互斥锁 线程同步与互斥 互斥锁 信号量 条件变量 互斥锁 互斥锁的基本使用...

  • C++锁

    锁的种类 互斥锁、条件锁、自旋锁、读写锁、递归锁。 互斥锁 头文件: 类型:pthread_mutex_t, 函数...

  • iOS锁

    锁的作用:保证线程安全。锁的分类:互斥锁,自旋锁,其它比如条件锁,递归锁,信号量都是上层的封装和实现。 互斥锁 防...

  • iOS开发中知道的哪些锁?

    一、自旋锁 A、OSLink 二、互斥锁 A. 递归锁 B. 条件锁 C.普通互斥锁 NSLock 三、GCD锁 ...

  • 互斥锁 自旋锁 递归锁 条件锁 读写锁 互斥锁:pthread_ mutex_t(NSLock基于此封装)每个对象...

  • POSIX Conditions

    ****POSIX**** 条件锁需要互斥锁和条件两项来实现,虽然看起来没什么关系,但在运行时中,互斥锁将会与条件...

网友评论

      本文标题:条件锁和互斥锁

      本文链接:https://www.haomeiwen.com/subject/rmdrlxtx.html