При выполнении любого вызова API важно учитывать, как они используются и для какой цели. Они происходят двумя способами: синхронно и асинхронно. Синхронный, на самом фундаментальном уровне, просто означает «нахождение в синхронизации», когда одно или несколько действий запускаются гармонично, в определенный момент времени, если выполняются определенные условия. Это противоположно асинхронности. Примером этого являются обычные компьютерные часы — компьютеры регулярно синхронизируют свои часы с действующими серверами, чтобы пользователи никогда не были «рассинхронизированы». Однако компьютер по-прежнему использует внутренние часы и выполняет действие асинхронно, что означает, что он по-прежнему работает без какой-либо зависимости от того, произойдет ли какое-либо другое действие первым.
Методы
Конечно, это все еще немного сложнее, чем это. Вот более простой способ подумать об этом. Синхронные функции называются блокирующими, потому что они блокируют любое действие до тех пор, пока событие не вернет ответ. Точно так же асинхронные функции называются неблокирующими функциями. Одно ключевое отличие состоит в том, что асинхронные функции также могут принимать функции обратного вызова в качестве последнего аргумента.
Случаи использования
Почему разработчик предпочел бы одно другому? Ну, во-первых, асинхронное программирование допускает распараллеливание, которое проявляется в том, что несколько потоков работают независимо друг от друга, а не в последовательном порядке. Это требует интуитивного понимания того, какие операции следует оптимизировать тем или иным образом. Подумайте о некоторых случаях, когда один вариант может перевешивать другой. При покупке чего-либо в Интернете продавец хотел бы, чтобы пользователь дождался публикации транзакции, чтобы обе стороны могли гарантировать, что она будет опубликована только один раз. Как правило, в этом случае пользователь не возражает против ожидания.
Дополнительные соображения
Недостатком использования синхронных функций является то, что они могут создавать узкие места и замедление, особенно в очередях. А как насчет асинхронного программирования? Одно из соображений заключается в том, нужен ли вам немедленный ответ. Такие вещи, как отправка сообщений, изображений, записанных видео, обычно происходят асинхронно, когда запрос отправляется до того, как потребуется ответ с сервера, потому что это быстрее и обеспечивает лучший пользовательский интерфейс.
Ресурсы: