Konkurence

Souběžnost umožňuje centrální procesorové jednotce (CPU) spouštět více úkolů současně po určitou dobu. Tyto úkoly nebo procesy na sobě nezávisí. Souběžnost například usnadňuje rychlý přechod mezi různými aplikacemi v počítači; zdá se, že různé procesy běží současně. Ale místo toho se CPU rychle přepíná mezi vlákny, což jsou malé segmenty výpočetních procesů. Technicky může CPU spustit pouze jedno vlákno najednou, ale souběžnost mu umožňuje přepínat tam a zpět mezi úkoly, takže se zdá, že běží současně. Tomu se říká multithreading.

Souběžnost umožňuje počítačovým programům správně fungovat spuštěním různých úkolů na jednom CPU ve stejném obecném časovém rámci, ale tyto úkoly na sobě navzájem nezávisí ani nejsou paralelní. Naproti tomu paralelismus ve skutečnosti spouští úkoly plně současně, místo aby se mezi nimi rychle pohyboval. Jednou z výhod vícejádrové technologie je, že umožňuje jednomu CPU provádět paralelní zpracování.

Souběžnost dává počítači s pouze jedním procesorem větší flexibilitu tím, že mu umožňuje rozhodnout, kdy a jak dlouho bude na úkolech pracovat. Souběžnost se také liší od sekvenčních procesů nebo programování: sekvenční procesy se dokončují jeden po druhém, zatímco souběžné se nemusí dokončit dříve, než začne další: lze je rozdělit jakýmkoli způsobem, který je nejúčinnější.

Souběžnost lze aplikovat na počítačové systémy a programovací jazyky. Mezi programovací jazyky, které používají souběžnost, patří Java, Python, Rust a Go.