Junior — Middle
Kunt u het doel en de werking van het sleutelwoord synchronized in Java uitleggen?
sobes.tech AI
Antwoord van AI
Het sleutelwoord synchronized in Java wordt gebruikt om toegang tot gedeelde bronnen te beheren in een multithread-omgeving. Het zorgt ervoor dat slechts één thread tegelijkertijd een bepaald codeblok of methode kan uitvoeren, waardoor racecondities worden voorkomen en de gegevensintegriteit wordt gewaarborgd.
Werking principe:
- Wanneer een thread een
synchronized-blok of methode binnenkomt, verwerft het de monitor (lock) van het object. - Andere threads die proberen hetzelfde
synchronized-blok of methode op hetzelfde object binnen te gaan, wachten totdat de monitor wordt vrijgegeven. - Na het verlaten van het
synchronized-blok wordt de monitor vrijgegeven, en de volgende wachtende thread kan binnenkomen.
Voorbeeld:
public class Counter {
private int count = 0;
public synchronized void increment() {
count++;
}
public int getCount() {
return count;
}
}
Hier is de increment-methode gesynchroniseerd om gelijktijdige wijzigingen aan de variabele count door meerdere threads te voorkomen.