Пятница была насыщенной, поэтому не успел вчера ничего написать. Однако, надеюсь у вас она прошла хорошо!
В комментариях к предыдущему посту подписчик попросил разобрать отличие асинхронности от многопоточности.
Чтобы не спугнуть часть аудитории, состоящую из начинающих специалистов, не буду погружаться в технические детали реализации, а объясню на пальцах отличия этих концепций.
На самом деле, непонимание этих отличий очень распространённое явление - многие люди считают, что многопоточность и асинхронность это одно и тоже.
Обычно, в таких случаях помогает понятная аналогия. Покажу вам это на примере готовки в ресторане.
Допустим, в ресторан пришёл заказ: сделать тост и сварить яйца. Вот как этот заказ можно выполнить этот заказ при разных вариантах исполнения:
▪️Синхронный.
Сначала варятся яйца, потом готовиться тост.
▪️Асинхронный.
Начинаете варить яйца и одновременно с этим устанавливаете таймер.
Пока варятся яйца, начинаете готовить тост.
Когда «яичный» таймер прозвенит, будет готов тост, и оба блюда можно подать, закрыв заказ.
▪️Многопоточный.
Нанимаете на кухню двух поваров: один будет варить яйца, второй - готовить тост.
Теперь появляется проблема координации их работы, так чтобы они не конфликтовали при пересечениях на кухне.
Например, им может понадобится взять посуду из одного шкафа (распределённый ресурс).
А ещё им надо платить)
Обдумав этот пример, можно сделать вывод о том, что многопоточность это история об исполнителях, а асинхронность - о задачах.
Если при многопоточности нужно озадачиться вопрос организации труда и распределением работы, то при асинхронности необходимо понять, какую задачу можно взять, пока текущая в режиме ожидания.
Если хотите больше подобных разборов на канале, ставьте 🔥
В комментариях к предыдущему посту подписчик попросил разобрать отличие асинхронности от многопоточности.
Чтобы не спугнуть часть аудитории, состоящую из начинающих специалистов, не буду погружаться в технические детали реализации, а объясню на пальцах отличия этих концепций.
На самом деле, непонимание этих отличий очень распространённое явление - многие люди считают, что многопоточность и асинхронность это одно и тоже.
Обычно, в таких случаях помогает понятная аналогия. Покажу вам это на примере готовки в ресторане.
Допустим, в ресторан пришёл заказ: сделать тост и сварить яйца. Вот как этот заказ можно выполнить этот заказ при разных вариантах исполнения:
▪️Синхронный.
Сначала варятся яйца, потом готовиться тост.
▪️Асинхронный.
Начинаете варить яйца и одновременно с этим устанавливаете таймер.
Пока варятся яйца, начинаете готовить тост.
Когда «яичный» таймер прозвенит, будет готов тост, и оба блюда можно подать, закрыв заказ.
▪️Многопоточный.
Нанимаете на кухню двух поваров: один будет варить яйца, второй - готовить тост.
Теперь появляется проблема координации их работы, так чтобы они не конфликтовали при пересечениях на кухне.
Например, им может понадобится взять посуду из одного шкафа (распределённый ресурс).
А ещё им надо платить)
Обдумав этот пример, можно сделать вывод о том, что многопоточность это история об исполнителях, а асинхронность - о задачах.
Если при многопоточности нужно озадачиться вопрос организации труда и распределением работы, то при асинхронности необходимо понять, какую задачу можно взять, пока текущая в режиме ожидания.
Если хотите больше подобных разборов на канале, ставьте 🔥