从本质上讲,是的。由于通道操作施加了排序约束,因此在通道发送之前分配给变量的任何值都可以在通道读取之后进行观察。但重要的是要记住方程式的另一部分:如果您想
保证
要确保观察到这些值,则必须确保在写入和读取之间没有其他人可以写入这些变量。显然可以使用锁,但同时毫无意义,因为如果您已经将锁和跨线程内存修改结合在一起,那么从通道中可以获得什么好处?您可以传递诸如布尔值之类的简单信息,作为允许对全局数据进行独占访问的令牌,并且就内存模型保证而言(只要您的代码没有错误),
它 是100%正确的 这可能只是一个糟糕的设计,
因为您将在没有充分理由的情况下将所有内容隐式化并按距离进行操作;显式传递数据通常会更加清晰,并且不容易出错。



