相关疑难解决方法(0)

互斥是否保证收购的顺序?

一位同事最近遇到了一个问题,归结为我们认为具有两个线程的C++应用程序中的以下事件序列:

  • 线程A持有互斥锁.

  • 当线程A持有互斥锁时,线程B会尝试锁定它.由于它被保持,线程B被暂停.

  • 线程A完成它持有互斥锁的工作,从而释放互斥锁.

  • 此后不久,线程A需要触摸受互斥锁保护的资源,因此它会再次锁定它.

  • 似乎线程A再次被赋予互斥锁; 线程B仍在等待,即使它首先"询问"锁定.

这个事件序列是否适合C++ 11 std::mutex和/或pthreads 的语义?老实说我以前从未想过互斥体的这个方面.

multithreading c++11

25
推荐指数
1
解决办法
3882
查看次数

标签 统计

c++11 ×1

multithreading ×1