Junior — Middle
Care este rolul și scopul mecanismului de blocare (Lock) în programarea multi-thread?
sobes.tech AI
Răspuns de la AI
Mecanismul de blocare (Lock) în programarea multi-thread este utilizat pentru a asigura excluderea mutuală la accesul la resursele comune. Rolul său principal este de a preveni modificarea simultană a datelor de către mai multe fire de execuție, ceea ce poate duce la condiții de cursă și comportament imprevizibil al programului.
Când un fir de execuție obține blocarea, alte fire care încearcă să obțină aceeași blocare vor aștepta până când aceasta este eliberată. Acest lucru garantează că doar un singur fir poate executa în același timp secțiunea critică a codului legată de resursa comună.
Exemplu în C#:
private readonly object _lockObj = new object();
public void IncrementCounter()
{
lock (_lockObj)
{
// Secțiune critică
counter++;
}
}
Aici, lock garantează că operația de incrementare a contorului este atomică și nu va fi întreruptă de alt fir.