Race Condition

Een race condition treedt op wanneer een software-programma afhankelijk is van de timing van een of meer processen om correct te functioneren. Als een thread op een onverwacht moment wordt uitgevoerd of eindigt, kan dit onvoorspelbaar gedrag veroorzaken, zoals onjuiste uitvoer of een deadlock van een programma.

De meeste softwareprogramma's zijn multithreaded, wat betekent dat ze meerdere threads tegelijk kunnen verwerken. Een goed geprogrammeerde applicatie zorgt ervoor dat de resultaten van elke thread in de verwachte volgorde worden verwerkt. Als een programma afhankelijk is van threads die in een onvoorspelbare volgorde worden uitgevoerd, kan er een race condition optreden.

Een eenvoudig voorbeeld is een logische poort die booleaanse waarden verwerkt. De AND-logische poort heeft twee ingangen en één uitgang. Als de ingangen A en B waar zijn, produceert de AND-poort TRUE. Als een of beide ingangen onwaar zijn, produceert de poort FALSE. Er kan een race condition optreden als een programma het resultaat van de logische poort controleert voordat de variabelen A en B zijn geladen. Het juiste proces zou zijn:

  1. Variabele A laden
  2. Variabele B laden
  3. Het resultaat van de AND-logische poort controleren

Een onjuiste volgorde zou zijn:

  1. Variabele A laden
  2. Het resultaat van de AND-logische poort controleren
  3. Variabele B laden

Het resultaat van het tweede bovenstaande voorbeeld kan hetzelfde zijn als dat van het eerste voorbeeld, maar dat hoeft niet. Zo kan variabele B zowel voor als na het laden FALSE zijn, waardoor het resultaat niet verandert. Als A FALSE is, maakt het niet uit of B TRUE of FALSE is. Als A en B echter beide TRUE zijn, zou het resultaat TRUE moeten zijn. Als variabele B wordt geladen nadat het resultaat van de logische poort is gecontroleerd, ontstaat het onjuiste resultaat FALSE.

De inconsistente uitvoer die door race conditions wordt veroorzaakt, kan bugs veroorzaken die moeilijk te detecteren zijn. Programmeurs kunnen deze problemen voorkomen door ervoor te zorgen dat threads in een consistente volgorde worden verwerkt.

Bijgewerkt January 24, 2020 door Per C.

quizTest je kennis

What is another name for an amateur hacker?

A
Script kiddie
0%
B
Code smurf
0%
C
Nooblet
0%
D
Pwner
0%
Correct! Incorrect!     View the Script Kiddie definition.
More Quizzes →

Het Tech Terms computerwoordenboek

De definitie van Race Condition op deze pagina is een originele definitie geschreven door de auteurs van TechTerms.com. Als je naar deze pagina wilt verwijzen of deze definitie wilt citeren, gebruik dan de groene citatiebalk direct onder de definitie.

Ons doel is om computerterminologie op een begrijpelijke manier uit te leggen. We streven naar nauwkeurigheid en eenvoud bij elke definitie die we publiceren. Als je feedback hebt over deze definitie of een nieuwe technische term wilt voorstellen, neem dan contact met ons op.

De Tech Terms-nieuwsbrief

Verbeter je technische kennis met onze dagelijkse of wekelijkse nieuwsbrief! Abonneer je vandaag nog en ontvang nieuwe termen en quizzen in je inbox.

Schrijf je in voor de gratis TechTerms-nieuwsbrief

Hoe vaak wil je een e-mail ontvangen?

Je kunt je op elk moment uitschrijven of je frequentie wijzigen via de links in elke e-mail. Vragen? Neem contact met ons op.

Let op: de nieuwsbrief wordt in het Engels verzonden.