当前位置: 技术问答>linux和unix
我觉得POSIX的线程里的条件变量的API设计得很不合理!
来源: 互联网 发布时间:2016-04-12
本文导语: 很多时候,我并不需要互斥什么东西,只想简单的通知一下另一个线程可以下一步工作了。这种应用根本不需要什么互斥锁。 pthread_cond_wait(&mycond, &mymutex); 所以我觉得更合理的是,第二个参数互斥锁应该是可选的,...
很多时候,我并不需要互斥什么东西,只想简单的通知一下另一个线程可以下一步工作了。这种应用根本不需要什么互斥锁。
pthread_cond_wait(&mycond, &mymutex);
所以我觉得更合理的是,第二个参数互斥锁应该是可选的,为NULL的时候去对应简单的同步。
有没有人跟我的想法一样的?或是认为我的想法明显是不可行或不合理的也欢迎指正!
pthread_cond_wait(&mycond, &mymutex);
所以我觉得更合理的是,第二个参数互斥锁应该是可选的,为NULL的时候去对应简单的同步。
有没有人跟我的想法一样的?或是认为我的想法明显是不可行或不合理的也欢迎指正!
|
呵呵,很多人起初也是这么想的,深入分析下,“只想简单的通知一下另一个线程可以下一步工作了”,那么通知的依据是什么?一般都是线程间共享的某个数据结构,当这个数据结构满足预设的条件时才会通知另一个线程,但是访问没有锁保护的共享变量自然是相当危险的
|
A condition variable must always be associated with a mutex, to avoid the race condition where a thread prepares
to wait on a condition variable and another thread signals the condition just before the first thread actually
waits on it.
to wait on a condition variable and another thread signals the condition just before the first thread actually
waits on it.
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。