Race Condition

Una race condition si verifica quando un programma software dipende dalla temporizzazione di uno o più processi per funzionare correttamente. Se un thread viene eseguito o termina in un momento imprevisto, può causare un comportamento imprevedibile, come un output errato o un deadlock del programma.

La maggior parte dei programmi software è multithread, ovvero può elaborare più thread contemporaneamente. Un'applicazione ben programmata garantisce che i risultati di ogni thread vengano elaborati nell'ordine previsto. Se un programma dipende da thread eseguiti in una sequenza imprevedibile, può verificarsi una race condition.

Un esempio semplice è un circuito logico che gestisce valori booleani. Il circuito logico AND ha due ingressi e un output. Se gli ingressi A e B sono true, il circuito AND produce TRUE. Se uno o entrambi gli ingressi sono false, produce FALSE. Una race condition può verificarsi se un programma controlla il risultato del circuito logico prima che le variabili A e B siano caricate. Il processo corretto sarebbe:

  1. Caricare la variabile A
  2. Caricare la variabile B
  3. Controllare il risultato del circuito logico AND

Una sequenza errata sarebbe:

  1. Caricare la variabile A
  2. Controllare il risultato del circuito logico AND
  3. Caricare la variabile B

Il risultato del secondo esempio precedente potrebbe essere uguale o diverso da quello del primo esempio. Per esempio, la variabile B potrebbe essere FALSE prima e dopo essere stata caricata, quindi il risultato non cambierebbe. Se A è FALSE, non importa se B è TRUE o FALSE. Tuttavia, se sia A sia B sono true, il risultato dovrebbe essere TRUE. Caricare la variabile B dopo aver controllato il risultato del circuito logico produrrebbe un risultato errato, FALSE.

L'output incoerente prodotto dalle race condition può causare bug difficili da rilevare. I programmatori possono evitare questi problemi assicurandosi che i thread vengano elaborati in una sequenza coerente.

Aggiornato January 24, 2020 da Per C.

quizMetti alla prova le tue conoscenze

In software, the term "golden master" refers to what?

A
The final release candidate of a software program
0%
B
An bug-free desktop application
0%
C
An application that is used as a template for other programs
0%
D
An software program that sells more than one million copies
0%
Correct! Incorrect!     View the Golden Master definition.
More Quizzes →

Il dizionario informatico Tech Terms

La definizione di Race Condition in questa pagina è una definizione originale scritta dagli autori di TechTerms.com. Se desideri fare riferimento a questa pagina o citare questa definizione, utilizza la barra di citazione verde direttamente sotto la definizione.

Il nostro obiettivo è spiegare la terminologia informatica in modo semplice e comprensibile. Ci impegniamo per l'accuratezza e la semplicità in ogni definizione pubblicata. Se hai commenti o vuoi suggerire un nuovo termine tecnico, contattaci.

La newsletter di Tech Terms

Migliora le tue conoscenze tecniche con la nostra newsletter giornaliera o settimanale! Iscriviti oggi e ricevi nuovi termini e quiz nella tua casella di posta.

Iscriviti alla newsletter gratuita di TechTerms

Con quale frequenza desideri ricevere un'e-mail?

Puoi annullare l'iscrizione o modificare la frequenza in qualsiasi momento tramite i link presenti in ogni e-mail. Domande? Contattaci.

Nota: La newsletter viene inviata in inglese.