2

我正在阅读“多处理器编程的艺术”一书,并被困在某个问题上。可以在此处找到问题以及建议的解决方案(问题 71)

我的问题是他们的解决方案对我来说似乎不正确。当线程调用 assign 方法时,Assign23 对象必须能够设置 3 个值中的 2 个,并且结果必须具有 2 的一致性。

换句话说,如果线程 A 和线程 B 调用 assign,都想写入 r[0] 和 r[1],A 设法将其值写入 r[0] 并将 B 写入 r[1],那么我们有一个违法的情况。线程 A 认为它设置了它的两个值,B 也是如此,而实际上两者都没有实现它们的目标。我是否误解了他们的解决方案?

你有更好的选择吗?我似乎无法想出适用于所有情况的东西。

4

0 回答 0