与线程同步

时间:2015-04-22 06:53:44

标签: c++ multithreading unix pthreads

我想要做的是每个线程在可能屈服于另一个线程之前打印出它的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 ;  
  }

1 个答案:

答案 0 :(得分:0)

线程并发运行,当它们产生时,它只是建议性的。你想要做的只是线程工作的方式没有任何意义。

就好像你有两个人在电脑上打字,你说你希望第一个人输入十个字符然后屈服于第二个。好吧,那很好,但是第二个人不必等待第一个人“屈服”,因为他们没有竞争相同的资源。