我想要做的是每个线程在可能屈服于另一个线程之前打印出它的5个字符。它有效,但它没有做我想要的。谢谢你的帮助。
for (unsigned i = 0; i < _repCount; ++i) {
unique_lock<mutex> lck(mtx);
cv.wait(lck, []{return !inUse; });
inUse = true;
for (auto c : _printMe) {
cout << c;
cout.flush();
}
inUse = false ;
}
答案 0 :(得分:0)
线程并发运行,当它们产生时,它只是建议性的。你想要做的只是线程工作的方式没有任何意义。
就好像你有两个人在电脑上打字,你说你希望第一个人输入十个字符然后屈服于第二个。好吧,那很好,但是第二个人不必等待第一个人“屈服”,因为他们没有竞争相同的资源。