Junior — Middle
Lehet-e a synchronized módosítót használni egy statikus módszerhez Java-ban?
sobes.tech MI
Válasz az MI-től
Igen, Java-ban lehetőség van a synchronized módosító használatára statikus módszerekhez. Ebben az esetben a zárolás a osztály szintjén történik (az Class objektum), nem az példány szintjén.
Ez azt jelenti, hogy ha egy szál egy statikus szinkronizált módszert hajt végre, akkor más szálak, amelyek megpróbálják meghívni ugyanannak az osztálynak bármely más statikus szinkronizált módszerét, blokkolva lesznek, amíg a zárolás fel nem oldódik.
Példa:
public class Example {
public static synchronized void staticMethod() {
// szinkronizált kód az Example.class objektumon
}
}
Így a synchronized a statikus módszerekhez biztosítja a szálbiztonságot osztály szinten.