Una race condition è una situazione in cui l'output o il risultato di un programma dipende dalla tempistica o dall'ordine di esecuzione di alcune parti del programma. Si verifica quando due o più thread o processi stanno leggendo o scrivendo sulla stessa risorsa e il risultato del programma dipende da quale thread termina per primo. Ad esempio, se il thread A legge un valore dalla memoria, lo aggiorna e quindi lo riscrive, mentre anche il thread B legge lo stesso valore, lo aggiorna, quindi scrive il proprio valore aggiornato, allora entrambi i thread potrebbero correre a scrivere il loro nuovo valore prima il valore, determinando un risultato imprevisto per il programma.
Spiega cos'è una race condition in un programma per computer.