Dlaczego synchronizacja na poziomie boolowskim nie jest dobrą praktyką?
Mój architekt zawsze tak mówi
Nigdy nie synchronizuj w Boolean
Nie jestem w stanie zrozumieć przyczyny i naprawdę byłbym wdzięczny, gdyby ktoś mógł wyjaśnić na przykładzie, dlaczego nie jest to dobra praktyka.Kod referencyjny
<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>