Rasconditie

Een race condition (ook wel race hazard genoemd) is een probleem met het ontwerp van een systeem. Bij een race condition is het resultaat van een berekening of het gedrag van het systeem als geheel afhankelijk van hoe lang een bepaalde berekening duurt, of wanneer deze wordt gestart. Race conditions komen voor in logische schakelingen en computersoftware, vooral bij multi-threaded of gedistribueerde systemen.

 

Voorbeeld

Het is vaak moeilijk uit te leggen wat een raceconditie is, maar de metafoor van een paardenrace kan als verklaring worden gebruikt.

Een computerprogramma is als een paardenrace. Het computerprogramma doet verschillende dingen tegelijk, net zoals bij een paardenrace verschillende paarden tegelijk lopen. Elk paard vertegenwoordigt wat gewoonlijk een uitvoeringsdraad wordt genoemd. Zo kan één zo'n thread netwerkcommunicatie afhandelen, terwijl een andere verantwoordelijk is voor het hertekenen van de gebruikersinterface. In het geval van een raceconditie werkt de applicatie naar behoren als een bepaald paard de race wint. De applicatie kan bijvoorbeeld werken als paard nummer vijf wint, maar zal crashen als een ander paard de race wint. Een oplossing voor het probleem is het gebruik van synchronisatie. Dit is alsof verschillende jockeys samenwerken, om ervoor te zorgen dat paard nummer vijf voorop loopt.

Op verschillende computers, of in verschillende situaties, kunnen computerprogramma's op verschillende snelheden draaien. Soms zullen ze sneller zijn, andere keren langzamer. Dit kan betekenen dat op sommige systemen de "race condition" nooit te zien zal zijn, ook al kan hij op andere systemen gemakkelijk te zien zijn. Race conditions kunnen moeilijk te vinden zijn. Bugs veroorzaakt door "race conditions" zijn een frequente bron van frustratie binnen de softwareontwikkeling.

 

AlegsaOnline.com - 2020 / 2023 - License CC3