Sobes.tech
Junior — Middle

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) на објекту, што обезбеђује безбедан приступ његовом стању.