【发布时间】:2018-10-31 01:00:25
【问题描述】:
我目前正在处理一个项目,该项目使用并行流来覆盖布尔值,但仅将其更改为 false。我很好奇这在 Java 中是如何工作的。
如果两个请求同时(完全相同的时间)用相同的值覆盖布尔值。会发生什么?
【问题讨论】:
-
所以这应该失败?
boolean foo = false; foo = false; foo = false;但是.. 你可能已经创建了一个线程不安全的程序,除非你更新volatile原始字段或使用某种显式同步。 -
好吧,让我重新表述我的问题,如果两个请求同时(完全相同)覆盖具有相同值的布尔值怎么办。会发生什么?
标签: java concurrency