Асинхронність

Термін асинхронність означає два або більше об'єктів чи подій, які не існують/відбуваються одночасно (або декілька пов'язаних процесів, які відбуваються без очікування, поки попередній процес завершиться). Для комп'ютерів слово "асинхронність" використовується у двох основних контекстах.

Мережі та комунікації

Асинхронна комунікація - це метод обміну повідомленнями між двома або більшою кількістю сторін, коли кожна сторона отримує та обробляє повідомлення тоді, коли їй це зручно, а не негайно по отриманні. Додатково, повідомлення можуть відсилатися без очікування на підтвердження, з розумінням, що, якщо проблема виникне, одержувач відправить запит на виправлення, чи іншим чином розбереться з ситуацією.

Для людей методом асинхронної комунікації є електронне листування; відправник надсилає лист, а отримувач прочитає його та відповість на повідомлення, коли йому буде зручно це зробити, замість того, щоб відповідати одразу. І обидві сторони продовжують відправляти та отримувати повідомлення, коли вони цього хочуть, замість того, щоб складати графік листування.

Коли програмне забезпечення використовує асинхронну комунікацію, програма може зробити запит на отримання інформації від іншого програмного забезпечення (наприклад, сервера), та продовжувати робити щось інше, очікуючи на відповідь. Наприклад, техніка програмування AJAX (Asynchronous JavaScript and XML) — зазвичай, просто "Ajax", хоча зазвичай у сучасних застосунках JSON використовується замість XML — є механізмом, який робить запити на відносно невеликі об'єми даних від сервера, використовуючи HTTP, та отримує результат, коли той є доступним, а не миттєво.

Проектування програмного забезпечення

Проектування асинхронного програмного забезпечення розширює концепцію побудовою коду, який дозволяє програмі запросити виконання нової задачі паралельно з основною задачею (чи задачами), не зупиняючись на очікування, поки задача не буде виконана. Коли другорядна задача виконана, основна задача отримує повідомлення за допомогою узгодженого механізму, який повідомляє, що робота виконана, і що результат, якщо він є, тепер доступний.

Існує ряд технік програмування для реалізації асинхронного програмного забезпечення. Для ознайомлення з темою дивіться статтю Асинхронність у JavaScript.

Дізнайтесь більше

Технічна довідка