当前位置: 技术问答>linux和unix
pthread_cond_wait 之前的 pthread_mutex_lock 语句 有什么作用,可以不用吗?
来源: 互联网 发布时间:2015-09-16
本文导语: pthread_mutex_lock(&m_mutex); pthread_cond_wait(&m_cond,&m_mutex); pthread_mutex_unlock(&m_mutex); 在一个生产者多个消费者的情况下,pthread_mutex_lock(&m_mutex);有什么用处. 如果有pthread_mutex_lock(&m_mutex), 那么一个线程阻塞在pthread_cond_wait(&m_cond,...
pthread_mutex_lock(&m_mutex);
pthread_cond_wait(&m_cond,&m_mutex);
pthread_mutex_unlock(&m_mutex);
在一个生产者多个消费者的情况下,pthread_mutex_lock(&m_mutex);有什么用处.
如果有pthread_mutex_lock(&m_mutex),
那么一个线程阻塞在pthread_cond_wait(&m_cond,&m_mutex);
而其他线程却阻塞在pthread_mutex_lock(&m_mutex)上.
pthread_cond_broadcast(&m_cond);之后
等pthread_cond_wait(&m_cond,&m_mutex);阻塞返回
等另外一个线程突破pthread_mutex_lock(&m_mutex);却已经没有了条件变量的信号.
如果不用pthread_mutex_lock(&m_mutex);,会有什么后果?????
pthread_mutex_lock(&m_mutex);是必须用的吗??
pthread_cond_wait(&m_cond,&m_mutex);
pthread_mutex_unlock(&m_mutex);
在一个生产者多个消费者的情况下,pthread_mutex_lock(&m_mutex);有什么用处.
如果有pthread_mutex_lock(&m_mutex),
那么一个线程阻塞在pthread_cond_wait(&m_cond,&m_mutex);
而其他线程却阻塞在pthread_mutex_lock(&m_mutex)上.
pthread_cond_broadcast(&m_cond);之后
等pthread_cond_wait(&m_cond,&m_mutex);阻塞返回
等另外一个线程突破pthread_mutex_lock(&m_mutex);却已经没有了条件变量的信号.
如果不用pthread_mutex_lock(&m_mutex);,会有什么后果?????
pthread_mutex_lock(&m_mutex);是必须用的吗??
|
pthread_mutex_lock(&m_mutex)是锁定互斥量,防止多个线程同时操作(特别是写)某一数据结构引发错误结果。一旦锁定,其他线程不能访问改数据结构
参见下面网页
http://www-900.ibm.com/developerWorks/cn/linux/thread/posix_thread2/index.shtml
http://www-900.ibm.com/developerWorks/cn/linux/thread/posix_threadapi/part3/index.shtml
参见下面网页
http://www-900.ibm.com/developerWorks/cn/linux/thread/posix_thread2/index.shtml
http://www-900.ibm.com/developerWorks/cn/linux/thread/posix_threadapi/part3/index.shtml
|
pthread_cond_wait atomically unlocks the mutex (as per pthread_unlock_mutex) and waits for the condition variable cond to be signaled.
因此必需先把 mutex 置为 lock 状态。
因此必需先把 mutex 置为 lock 状态。
|
不仅仅别的线程不能更改数据结构,而且可以保证你现在被锁上的线程拥有不被打断的权利,通过加锁使你的线程有原子性,可以独占CPU了。从效率和安全性上,都应该加锁
|
要看初始话的属性
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。