Programowanie synchroniczne
Programowanie synchroniczne polega na tym, że operacje są wykonywane pojedynczo, w idealnej kolejności.
Podczas wykonywania jednej operacji, instrukcje innych operacji są blokowane.
Zakończenie pierwszego zadania uruchamia następne i tak dalej.
W związku z tym złożone zadanie może zająć trochę czasu, zanim wszystkie jego kroki zostaną wykonane i zakończone.
Synchroniczna architektura blokuje, ponieważ wykonanie każdej operacji jest uzależnione od zakończenia poprzedniej.
Programowanie asynchroniczne
Programowanie asynchroniczne polega na wykonaniu powiązanych operacji jednocześnie bez czekania na zakończenie innych zadań. Podczas komunikacji asynchronicznej
strony odbierają i przetwarzają wiadomości wtedy, gdy jest to wygodne lub możliwe, zamiast odpowiadać natychmiast po ich otrzymaniu.
Asynchroniczna architektura nie blokuje. Wykonanie jednego zadania nie jest zależne od innego. Zadania mogą działać jednocześnie.
Umożliwia aplikacji wykonywanie różnych operacji bez czekania na którąkolwiek z nich.
Z powyższego wykresu widać, że wykonanie czterech zadań przy programowaniu synchronicznym zajęło 45 sekund, podczas gdy przy programowaniu asynchronicznym wykonanie tych czterech zadań zajęło tylko 20 sekund.