这是场景。鲍勃是一名作家,爱丽丝是一名读者。鲍勃写东西,爱丽丝读它们。规则是:
1)无论Alice是否正在读取,Bob都可以写入(读取不会阻止写入)。
2) 当 Bob 写入时,Alice 无法读取(写入会阻塞读取)。
3)当Alice读完后,她可以知道Bob在她读的过程中是否写了内容(读者可以检测他们刚刚读到的数据是否无效)。
2) 和 3) 实际上是一个组合规则,但我列出了两个以便进行良好的讨论。这个问题可以通过一个互斥锁和一个计数器(版本号)来解决,但我不知道的是,上面是一个众所周知的场景,有一个常用的名称吗?有研究过吗?
最佳答案
Which I do not know is, is the problem a well-know scenario named by terms?
是的,它叫做Seqlock: https://en.wikipedia.org/wiki/Seqlock
Does anyone study at it or I am just making a wheel?
据我所知有多种实现(例如Linux内核)和论文。
关于c++ - : non-blocking write, 假想的锁机制读取并失效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44325726/