当一个线程比另一个线程做更多的工作时,我正在编写一个遭受饥饿的程序。关键部分由可重入的QMutex保护,这是不公平的。
在Java中,您可以为锁指定一个公平参数。C++ (或boost库)有任何公平的可重入锁吗?最好是C++11。
我以前做过一些研究,在boost中有shared_lock,但是我不需要读/写锁。只是一个锁,这将保证每个线程都有平等的机会进入关键部分。
非常感谢。
发布于 2015-09-11 16:06:55
C++线程原语实际上是基于Posix线程的,Posix没有任何公平的互斥。但是,您的问题表明您的设计存在问题。这里有两个问题:
https://stackoverflow.com/questions/32526971
复制相似问题