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 үстүндө блокдоо
}
}
}