我知道如果两个线程正在写入同一个地方,我需要确保它们以安全的方式执行并且不会导致任何问题,但是如果只有一个线程读取并完成所有写入,而另一个线程只是读取,该怎么办。
在我的情况下,我第一次在一个小游戏中使用一个线程来保持更新与渲染分开。完成所有渲染的类永远不会写入它读取的任何内容,因此我不确定是否需要处理它们共享的所有内容的每次读取和写入。
我将采取正确的步骤来确保渲染器不会尝试读取不再存在的任何内容,但是在调用播放器和实体的吸气剂之类的东西时,我应该以同样的方式对待它们吗?或者将 x、y 线和布尔值(如“alive”)设置为 volatile 是否有效?
我对此的理解变得非常模糊,可以做一些启发性的
编辑:共享数据将是需要绘制、移动和存储在对象列表中的任何内容。例如玩家和其他实体的;