Kako tok dobija kontrolu nad objektom i kako se vrši njegovo hvatanje u višestrukom okruženju?
sobes.tech АИ
Одговор од АИ
У окружењу са више нитова, нит добија контролу над објектом преко механизама синхронизације који обезбеђују ексклузиван приступ ресурсу. У Android-у (и уопште у Јави) за то се користе кључне речи и класе као што су synchronized, ReentrantLock и друге.
Када нит жели да приступи објекту, покушава да ухвати монитор (lock) тог објекта. Ако је монитор слободан, нит добија контролу и може извршавати операције са објектом. Ако је монитор заузет од стране друге нити, тренутна нит се блокира и чека да се ослободи.
Пример са synchronized:
public class Counter {
private int count = 0;
public synchronized void increment() {
count++;
}
public synchronized int getCount() {
return count;
}
}
Овде су методи increment и getCount синхронизовани, што гарантује да само једна нит у исто време може извршавати ове методе, спречавајући услове трке.
Дакле, хватање објекта значи добијање монитора (lock) на објекту, што обезбеђује безбедан приступ његовом стању.