samtidighetsprogrammering
Samtidighetsprogrammering, eller samtidighetsprogrammering, handlar om att skriva program som kan utföra flera uppgifter samtidigt på samma maskin eller i snabb följd utan att skada korrektheten. Det är centralt för utnyttjandet av flerkärniga processorer och asynkron I/O, där uppgifter kan köras parallellt eller i icke-blockerande vägar.
Det finns olika modeller för hur samtidighet organiseras. I delat minne används trådar eller processer som
Synkronisering är kärnan för korrekthet och innehåller mekanismer som lås (mutex), semaforer, monitorer, villkorsvariabler och trådrelationer
Vanliga idiom och mönster inkluderar producent–konsument, Läsare–skrivare och trådpooler. För utvecklaren innebär det ofta att väga
Samtidighetsprogrammering är därmed en central del av modern mjukvarudesign och kräver tydliga kontrakt, tester och noggrann