Synchronous vs Asynchronous
Синхронността и асинхронността са две големи думи, които изглеждат плашещи, но са доста прости. Синхронно просто означава, че всички събития се случват в определен времеви ред, който може да се предвиди. Определено събитие винаги би следвало друго и те не могат да бъдат разменени. Асинхронен е обратното на синхронния. При асинхронните процеси няма времеви ред. Определени събития могат и често се заменят. Отличен синхронен пример е музиката. Всеки участващ инструмент трябва да е в ритъм с останалите, иначе музиката няма да звучи правилно. За асинхронния добър пример би бил трафикът. Превозните средства се движат с различна скорост и е обичайно един да се движи покрай друг.
В повечето приложения синхронната работа е от съществено значение, тъй като наличието на асинхронна операция буквално би означавало хаос. Примери за това са железопътните линии и летищата. В тези сценарии е важно да се знае кое превозно средство е на първо място, за да се избегнат сблъсъци. Редът на нещата е внимателно планиран, за да се улесни плавният поток и промените в плана са малко и далеч между тях.
Въпреки че синхронната работа често се предпочита, има определени случаи, когато тя не е необходима. Има дори случаи, когато синхронната работа може да бъде пагубна за целта. Пример, при който синхронната работа всъщност не е необходима, е в сърфирането в интернет. Преди AJAX (Asynchronous Javascript and XML) повечето уеб страници трябва да бъдат презаредени изцяло, за да промените информацията в малък раздел. С AJAX вече е възможно да актуализирате този определен раздел, като оставите останалата част от страницата недокосната. Това е от полза, тъй като трябва да се предадат по-малко количество данни и потребителят не трябва да издържи през освежаването на цялата страница. AJAX е асинхронен, тъй като актуализациите на страниците вече не се синхронизират.
При компютърните операции I / O е област, в която синхронната работа става пагубна. Синхронната работа в това отношение означава, че процесорът трябва да изчака данните да бъдат написани или прочетени, преди да могат да продължат. Проблемът е, че I / O устройства като твърди дискове и особено дискети, които имат механични части, са много бавни. Ако процесорът трябва да изчака завършването на устройството, това ще загуби много време. Асинхронната работа позволява на процесора да прави други неща, докато чака да приключи четене / запис и просто да продължи, след като операцията е успешна.
Резюме:
Синхронно означава във времеви ред, докато Асинхронен означава без времеви ред
Синхронът е предпочитан пред асинхронния в много приложения в реалния свят
Синхронните могат да се представят по-лошо в определени сценарии от асинхронните