相关疑难解决方法(0)

为什么在布尔值上同步不是一个好习惯?

我的建筑师总是说

永远不要在布尔上同步

我无法理解其中的原因,如果有人可以用一个例子来解释为什么它不是一个好的做法,我会非常感激. 参考样本代码

private Boolean isOn = false;
private String statusMessage = "I'm off";
public void doSomeStuffAndToggleTheThing(){

   // Do some stuff
   synchronized(isOn){
      if(isOn){
         isOn = false;
         statusMessage = "I'm off";
         // Do everything else to turn the thing off
      } else {
         isOn = true;
         statusMessage = "I'm on";
         // Do everything else to turn the thing on
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

java multithreading boolean synchronize

33
推荐指数
2
解决办法
3万
查看次数

标签 统计

boolean ×1

java ×1

multithreading ×1

synchronize ×1