这是一个问题,因为我不能使用一个互斥体的这两个功能,因为那时foo会死锁时调用吧.所以而不是“互斥”我只想“从不同的线程互斥”.
有没有实现这个模式?我正在使用C,如果我需要像shared_mutex这样的东西,我可以C 14 / boost.
解决方法 定义一个私有的“解锁”功能,并使用foo和bar:voID bar_unlocked(){ // assert that mx_ is locked // real work}voID bar(){ std::lock_guard<std::mutex> lock(mx_); bar_unlocked();}voID foo(){ std::lock_guard<std::mutex> lock(mx_); // stuff bar_unlocked(); // more stuff}总结
以上是内存溢出为你收集整理的c – 相互排斥的功能全部内容,希望文章能够帮你解决c – 相互排斥的功能所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)