Multithreading 信号灯小册子-屏障

Multithreading 信号灯小册子-屏障,multithreading,semaphore,Multithreading,Semaphore,我正在翻阅主题中提到的那本书,有一件事让我很烦。对于屏障,解决方案为以下(伪)代码: 然而,计数器的读数是否也应该受到互斥保护,以便在读取时不会出现不一致?我的意思是: 3 mutex.wait () 4 count = count + 1 5 if count == n: barrier.signal() 6 mutex.signal() 或者我对反风险投资过于谨慎了 谢谢您的回答。是的,它应该受到保护,并且您的修复看起来是正确的 有可能作者过于简化了他们的伪代码,实际上意思

我正在翻阅主题中提到的那本书,有一件事让我很烦。对于屏障,解决方案为以下(伪)代码:

然而,计数器的读数是否也应该受到互斥保护,以便在读取时不会出现不一致?我的意思是:

3 mutex.wait ()
4     count = count + 1
5     if count == n: barrier.signal()
6 mutex.signal()
或者我对反风险投资过于谨慎了


谢谢您的回答。

是的,它应该受到保护,并且您的修复看起来是正确的

有可能作者过于简化了他们的伪代码,实际上意思是:

3 mutex.wait ()
4     count = count + 1
5     c = count
6 mutex.signal()
7 
8 if c == n: barrier.signal ()
。。。这是正确的

3 mutex.wait ()
4     count = count + 1
5     c = count
6 mutex.signal()
7 
8 if c == n: barrier.signal ()