Синхронный против Асинхронного
Синхронный и асинхронный два больших слова, которые кажутся пугающими, но довольно просты. Синхронный просто означает, что все события происходят в определенном временном порядке, который можно предсказать. Одно событие всегда будет следовать за другим, и они не могут быть заменены. Асинхронный является противоположностью синхронного. В асинхронных процессах нет временного порядка. Определенные события могут и часто взаимозаменяемы. Отличный синхронный пример - музыка. Каждый участвующий инструмент должен быть в ритме с другими, иначе музыка не будет звучать правильно. Для асинхронного хорошим примером будет трафик. Транспортные средства движутся с разной скоростью, и обычно один проезжает мимо другого..
В большинстве приложений синхронная операция необходима, поскольку асинхронная операция буквально означает хаос. Примерами этого являются железные дороги и аэропорты. В этих сценариях важно знать, какое транспортное средство идет первым, чтобы избежать столкновений. Порядок вещей тщательно спланирован, чтобы обеспечить плавный ход, а изменения в плане немногочисленны.
Хотя синхронная работа часто является предпочтительной, в некоторых случаях она не нужна. Есть даже случаи, когда синхронная работа может нанести ущерб цели. Пример, в котором синхронная работа на самом деле не нужна, - это просмотр интернет-страниц. До AJAX (асинхронный Javascript и XML) большинство веб-страниц необходимо полностью перезагрузить, чтобы изменить информацию в небольшом разделе. С AJAX теперь возможно обновить этот определенный раздел, оставив остальную часть страницы нетронутой. Это выгодно, так как необходимо передавать меньшее количество данных, и пользователю не нужно терпеть обновление всей страницы. AJAX асинхронный, потому что обновления страниц больше не синхронизируются.
В компьютерных операциях ввод / вывод - это область, в которой синхронная работа становится вредной. Синхронная работа в этом отношении означает, что процессору необходимо ждать, пока данные будут записаны или прочитаны, прежде чем он сможет продолжить работу. Проблема в том, что устройства ввода-вывода, такие как жесткие диски и особенно дисководы с механическими частями, работают очень медленно. Если процессору нужно дождаться завершения работы накопителя, это будет напрасной тратой времени. Асинхронная операция позволяет процессору делать другие вещи в ожидании завершения чтения / записи и просто продолжать работу после успешного завершения операции..
Резюме:
Синхронный означает порядок времени, в то время как Асинхронный означает отсутствие порядка времени
Синхронный предпочтительнее асинхронного во многих реальных приложениях
Синхронный может работать хуже в определенных сценариях, чем асинхронный