samenloop

Met gelijktijdigheid kan een centrale verwerkingseenheid (CPU) meerdere taken tegelijk uitvoeren gedurende een bepaalde periode. Deze taken of processen zijn niet van elkaar afhankelijk. Concurrency vergemakkelijkt bijvoorbeeld de snelle overgang tussen verschillende applicaties op een computer; het lijkt erop dat verschillende processen op exact hetzelfde moment draaien. Maar in plaats daarvan schakelt de CPU snel heen en weer tussen threads, wat kleine segmenten zijn van computerprocessen. Technisch gezien kan een CPU slechts één thread tegelijk uitvoeren, maar met gelijktijdigheid kan hij heen en weer schakelen tussen taken, zodat ze tegelijkertijd lijken te worden uitgevoerd. Dit heet multithreading.

Met gelijktijdigheid kunnen computerprogramma’s correct worden uitgevoerd door verschillende taken op één CPU uit te voeren gedurende hetzelfde algemene tijdsbestek, maar deze taken zijn niet allemaal van elkaar afhankelijk en zijn ook niet parallel. Parallellisme daarentegen voert taken volledig tegelijkertijd uit, in plaats van snel tussen de taken te bewegen. Een voordeel van multi-core-technologie is dat een enkele CPU parallelle verwerking kan uitvoeren.

Concurrency geeft een computer met slechts één CPU meer flexibiliteit door hem te laten beslissen wanneer en hoelang hij aan taken moet werken. Gelijktijdigheid verschilt ook van opeenvolgende processen of programmering: opeenvolgende processen worden een voor een voltooid, terwijl gelijktijdige processen niet hoeven te worden voltooid voordat een andere begint: ze kunnen worden verdeeld op de manier die het meest effectief is.

Concurrency kan worden toegepast op computersystemen en programmeertalen. Programmeertalen die gelijktijdigheid gebruiken, zijn onder meer Java, Python, Rust en Go.