Sobes.tech
Junior — Middle

Puteți explica ce este o condiție de cursă în execuția paralelă a programelor?

sobes.tech AI

Răspuns de la AI

Condiția de cursă (race condition) apare atunci când mai multe fire sau procese accesează și modifică date comune simultan fără o sincronizare adecvată. Ca rezultat, starea finală a datelor depinde de ordinea în care sunt executate operațiile, ceea ce duce la erori imprevizibile.

De exemplu, dacă două fire încearcă să crească în același timp un contor și ambele citesc valoarea veche, valoarea finală va crește doar cu 1 în loc de 2.

Pe iOS, acest lucru se poate manifesta în timpul lucrului cu multithreading (de exemplu, GCD sau OperationQueue) dacă nu se utilizează mecanisme de sincronizare (lock-uri, cozi, operații atomice). Pentru a evita condițiile de cursă, trebuie asigurată o accesare secvențială a resurselor partajate.