¿Por qué no es una buena práctica sincronizar en Boolean?

Mi arquitecto siempre dice que

Nunca sincronizar en Boolean

No puedo entender la razón por la cual lo haría y realmente apreciaría si alguien pudiera explicarlo con un ejemplo de por qué no es una buena práctica.Código de muestra de referencia

<code>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
      }
   }
}
</code>

Respuestas a la pregunta(4)

Su respuesta a la pregunta