当一个线程比另一个线程做更多的工作时,我正在研究一个挨饿的程序。关键部分受可重入QMutex保护,这是不公平的。
在Java中,可以为锁指定公平性参数。 C++(或Boost库)是否有任何可用的可重入锁?最好是C++ 11。
我之前做过一些研究,boost中有shared_lock,但是我不需要读/写锁。只是一个锁,它将确保每个线程都有相等的机会进入临界区。
非常感谢你。
最佳答案
C++线程原语实际上基于Posix线程,并且Posix没有任何公平的互斥体。但是,您的问题表明您的设计存在问题。这里有两个问题: