Synchronní vs asynchronní
Synchronní a asynchronní jsou dvě velká slova, která se zdají zastrašující, ale jsou celkem jednoduchá. Synchronní jednoduše znamená, že všechny události se vyskytují v určitém časovém pořadí, které lze předvídat. Určitá událost bude vždy následovat jinou a nelze je zaměnit. Asynchronní je opakem synchronních. V asynchronních procesech neexistuje časové pořadí. Některé události se mohou, a často, vyměňovat. Vynikající synchronní příklad je hudba. Každý zúčastněný nástroj musí být v rytmu s ostatními, jinak hudba nebude znít správně. Pro asynchronní je dobrým příkladem provoz. Vozidla se pohybují různou rychlostí a je běžné, že se jeden pohybuje za druhým.
Ve většině aplikací je synchronní operace nezbytná, protože mít asynchronní operaci by doslova znamenalo chaos. Příkladem jsou železnice a letiště. V těchto scénářích je důležité vědět, které vozidlo jede první, aby nedošlo ke srážce. Pořadí věcí je pečlivě naplánováno, aby se usnadnil plynulý tok, a změny v plánu jsou jen velmi málo.
Ačkoli je často preferována synchronní operace, existují případy, kdy to není nutné. Existují dokonce případy, kdy synchronní operace může být na újmu cíli. Příkladem, kdy synchronní operace není opravdu nutná, je procházení internetu. Před AJAX (Asynchronous Javascript a XML) je třeba většinu webových stránek znovu načíst, aby se změnily informace v malé sekci. U AJAX je nyní možné tuto část aktualizovat a zbytek stránky ponechat nedotčený. To je výhodné, protože je třeba přenášet menší množství dat a uživatel nemusí vydržet obnovováním celé stránky. AJAX je asynchronní, protože aktualizace stránek již nejsou synchronizovány.
V počítačových operacích je I / O oblast, kde se synchronní operace stává škodlivou. Synchronní operace v tomto ohledu znamenají, že procesor musí počkat, až budou data zapsána nebo načtena, než bude pokračovat. Problém je, že I / O zařízení, jako jsou pevné disky a zejména diskety, které mají mechanické části, jsou velmi pomalé. Pokud procesor potřebuje počkat, až jednotka dokončí, ztrácí to spoustu času. Asynchronní operace umožňuje procesoru dělat další věci při čekání na dokončení čtení / zápisu a pokračovat, jakmile je operace úspěšná.
Souhrn:
Synchronní znamená časové pořadí, zatímco asynchronní znamená žádné časové pořadí
Synchronní je v mnoha aplikacích reálného světa preferován před asynchronními
Synchronní může v některých scénářích provádět horší než asynchronní