Sobes.tech
Junior — Middle

Kādā objektā tiek īstenots bloķēšanas mehānisms, izmantojot synchronized atslēgas vārdu?

sobes.tech AI

Atbilde no AI

Java valodā, lietojot atslēgas vārdu synchronized, bloķēšanas mehānisms ir atkarīgs no konteksta:

  • Ja synchronized tiek piemērots nesstatiskai metodei, bloķēšana notiek uz objekta (this), no kura tiek izsaukta metode.
  • Ja synchronized tiek piemērots statiskai metodei, bloķēšana notiek uz klases objekta (Class), tas ir, uz pašu klasi.
  • Ja tiek izmantots synchronized(obj) bloks, bloķēšana notiek uz obj objekta.

Piemērs:

public class Example {
    public synchronized void instanceMethod() {
        // bloķēšana uz this
    }

    public static synchronized void staticMethod() {
        // bloķēšana uz Example.class
    }

    public void blockMethod() {
        Object lock = new Object();
        synchronized(lock) {
            // bloķēšana uz lock
        }
    }
}