Синхронний проти Асинхронний
Синхронність і асинхронність - це великі слова, які здаються залякуючими, але досить простими. Синхронність просто означає, що всі події відбуваються в певному часовому порядку, який можна передбачити. Певна подія завжди піде за іншою, і їх неможливо замінити. Асинхронність - це протилежність синхронної. В асинхронних процесах немає часового порядку. Певні події можуть, а часто й взагалі, змінюватись. Прекрасний синхронний приклад - музика. Кожен інструмент-учасник повинен бути в ритмі з іншими, інакше музика не буде звучати правильно. Для асинхронних хорошим прикладом може бути трафік. Транспортні засоби рухаються з різною швидкістю, і один звичайний проїжджає повз іншого.
У більшості застосунків синхронна операція є важливою, оскільки наявність асинхронної операції буквально означає хаос. Прикладами цього є залізниця та аеропорти. У цих сценаріях важливо знати, який транспортний засіб їде першим, щоб уникнути зіткнень. Порядок речей планується ретельно, щоб полегшити безперебійний потік, і зміни в плані є небагато між ними.
Хоча синхронну роботу часто надають перевагу, є певні випадки, коли вона не потрібна. Існують навіть випадки, коли синхронна робота може завдати шкоди цілі. Приклад, коли синхронна робота насправді не потрібна, - це перегляд Інтернету. Перед AJAX (Асинхронний Javascript та XML) більшість веб-сторінок потрібно перезавантажити повністю, щоб змінити інформацію на невеликому розділі. За допомогою AJAX тепер можна оновити цей певний розділ, залишаючи незайманою іншу частину сторінки. Це вигідно, оскільки потрібно передавати менший обсяг даних, і користувачеві не доведеться переживати оновлення всієї сторінки. AJAX асинхронний, оскільки оновлення сторінок більше не синхронізуються.
У комп'ютерних операціях введення-виведення - це область, де синхронна робота стає згубною. Синхронна робота в цьому плані означає, що процесору потрібно чекати, коли дані будуть записані чи прочитані, перш ніж вони можуть продовжуватися. Проблема полягає в тому, що такі пристрої вводу / виводу, як жорсткі диски і особливо дискети, які мають механічні частини, дуже повільні. Якщо процесору потрібно зачекати, коли накопичувач закінчиться, це би витрачало багато часу. Асинхронна операція дозволяє процесору робити інші речі, поки чекає завершення читання / запису і просто продовжувати, як тільки операція пройшла успішно.
Підсумок:
Синхронний означає часовий порядок, тоді як Асинхронний означає відсутність порядку часу
У багатьох реальних додатках синхронний перевага від асинхронного
Синхронний може виконуватись у певних сценаріях гірше, ніж асинхронний