Multicore en synchronisatie
Welke uitleg over een data race is juist?
- AEen toestand waarin meerdere threads dezelfde variabele alleen tegelijk lezen
- BEen toestand waarin één thread twee keer achtereen naar dezelfde variabele schrijft
- CEen toestand waarin meerdere threads zonder synchronisatie tegelijk dezelfde variabele benaderen en minstens één daarvan schrijft
Antwoord en toelichting tonen
Antwoord: C. Een toestand waarin meerdere threads zonder synchronisatie tegelijk dezelfde variabele benaderen en minstens één daarvan schrijft
Een data race is een toestand waarin de volgorde van lezen en schrijven op dezelfde plaats niet door synchronisatie is vastgelegd, zodat het resultaat afhangt van de volgorde van uitvoering. Omdat het afhankelijk van timing wel of niet optreedt, is het een fout die bij tests moeilijk te vinden is. In C en C++ is het gedrag van een programma met een data race ongedefinieerd. De volgorde moet worden vastgelegd met locks of atomaire variabelen.