开关运算符是原子的吗?
2022-09-03 00:29:09
在文档中,据说您可以同样多次使用或:if-else
switch-case
int condition;
setCondition(int condition) {
this.condition = condition;
}
任一开关盒
switch (condition) {
case 1: print("one"); break;
case 2: print("two"); break;
或
if (condition == 1) { print("one"); }
else if (condition == 2) { print("two"); }
接下来,声明并从多个线程调用方法。 不是原子的,变量写入是同步操作。因此,“一”和“二”字符串都可以打印在最后一个代码中。condition
volatile
setCondition()
If-else
volatile
如果使用具有初始值的方法局部变量,则可以避免这种情况:
int localCondition = condition;
if (local condition == ..) ..
运算符是否包含变量的某个初始副本?如何使用它实现跨线程操作?switch-case