Sobes.tech
Junior — Middle

Дар кадом объект механизмии бастани вақте ки калимаи калидии synchronized истифода мешавад, амалӣ мешавад?

sobes.tech AI

Ҷавоб аз AI

Дар Java, вақте ки калиди калиди synchronized истифода мешавад, механизмҳои бастани вобаста ба контекст:

  • Агар synchronized ба усули ғайристатикӣ татбиқ карда шавад, бастан дар объект (this) ки аз он усул даъват мешавад, сурат мегирад.
  • Агар synchronized ба усули статикӣ татбиқ карда шавад, бастан дар объекти синф (Class) сурат мегирад, яъне дар худи синф.
  • Агар блоки synchronized(obj) истифода шавад, бастан дар объект obj сурат мегирад.

Масалан:

public class Example {
    public synchronized void instanceMethod() {
        // бастан дар this
    }

    public static synchronized void staticMethod() {
        // бастан дар Example.class
    }

    public void blockMethod() {
        Object lock = new Object();
        synchronized(lock) {
            // бастан дар lock
        }
    }
}