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