0
這是一個訪問問題: 使用互斥量和信號量實現n
線程之間的障礙。 我提出的解決方案:使用互斥量和信號量實現屏障
class Barrier {
public:
Barrier(unsigned int n) : _n(n),_count(0),_s(0) {}
~Barrier() {}
void Wait() {
_m.lock();
_count++;
if (_count == _n) { _s.signal(); }
_m.unlock();
_s.wait();
_s.signal();
}
private:
unigned int _n;
unigned int _count;
Mutex _m;
Semaphore _s;
};
那是解決好? 只能使用互斥鎖來實現屏障嗎?
[信號量小冊子](http://www.cs.ucr.edu/~kishore/papers/semaphores.pdf)如果你想追求它,它會有一個很好的障礙處理障礙。 – Duck
@Duck提供可重複使用的屏障解決方案。我正在尋找定期的屏障解決方案。 – Yakov