Sobes.tech
Junior — Middle

Šta tačno prenosi ili koristi mehanizam zaključavanja (lock) u višestrukom programiranju?

sobes.tech АИ

Одговор од АИ

У механизму блокирања (lock) у мулти-тред програмирању, користи се објекат или примитив за синхронизацију који обезбеђује ексклузивни приступ заједничком ресурсу. Када нит стекне блокаду, друге нитове које покушавају да стекну исту блокаду ће чекати док се она не ослободи.

Другим речима, под "lock" се преноси или користи:

  • Статус блокаде (заузета/слободна).
  • Механизам чекања (на пример, ред нитова који чекају на ослобађање).

У C#-у, кључна реч lock ради са објектом који служи као маркер блокаде. Пример:

private readonly object _lockObj = new object();

void CriticalSection()
{
    lock(_lockObj)
    {
        // Код који треба да се извршава само од стране једне нити у исто време
    }
}

Овде, у lock, се преноси референца на објекат _lockObj, који се користи за управљање приступом. Унутрашње, CLR користи овај објекат за контролу стања блокаде.