这个问题类似于是否应该将我的 Scala 演员的属性标记为 @volatile?但不确定答案是否相同。
例如,如果配置了 fork-join 调度程序并且参与者的状态未由 @volatile 标记,是否保证参与者的状态将通过缓存层次结构从一个内核(或处理器)传播到另一个内核(或处理器)如果 fork /join 工作线程在不同的内核(或处理器)上运行?
PS 在 JSR133 之后,只有一个对任何易失性变量的写入/读取操作需要将缓存刷新到主内存并在其他内核(或处理器)上运行的其他线程上查看该线程的所有先前非易失性写入,这对吗?如果是,则可以回答,因为扫描工作队列会从/写入 FJ 任务的易失性变量。