Sobes.tech
Junior — Middle

Waarom zijn synchronisatie-mechanismen nodig in enkel-procesorsystemen bij het werken met multithreaded applicaties?

sobes.tech AI

Antwoord van AI

In uniprocessorsystemen, hoewel op elk moment slechts één thread wordt uitgevoerd, kunnen multithreaded applicaties tussen threads schakelen (contextswitching). Als meerdere threads gelijktijdig toegang hebben tot gedeelde bronnen (bijvoorbeeld variabelen of datastructuren), kunnen racecondities optreden zonder synchronisatiemechanismen, waardoor gegevens inconsistent worden.

Synchronisatiemechanismen (mutexen, semaforen, locks) zorgen ervoor dat slechts één thread op een gegeven moment een gedeelde bron kan wijzigen of lezen, waardoor fouten worden voorkomen en de correctheid van het programma wordt gewaarborgd.

Voorbeeld: als twee threads tegelijkertijd een gedeelde teller verhogen zonder lock, kan de uiteindelijke waarde lager zijn dan verwacht vanwege conflicten tijdens lezen en schrijven.