May 23, 2022

Асинхронность это кто?

Всем привет. Недавно изучал асинхронный код и решил попробовать донести до вас полученные информацию в более понятном формате.

Асинхронность - не совпадение с чем-либо во времени; неодномоментность, неодновременность, несинхронность — характеризует процессы, не совпадающие во времени. Термин используемый в специальной литературе, предназначенный для особого применения, в общем смысле, это состояние не являющееся синхронизированным.

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

Попробую привести пример: вы проснулись утром, поставили чайник (задача 1) пока он кипит вы умываетесь (задача 2) умывшись вы услышали свист и выключили чайник (ответ задачи 1). Т. е поставив чайник вы не ждали пока он закипит, как бы ожидая ответа , а сразу пошли умываться , получив ответ (свист чайника) позже.

Визуальное представление асинхронности

Вот какое определение дается в доках asyncio:

asyncio — это библиотека для написания параллельного кода с использованием синтаксиса async/await

Какая польза от асинхронного кода?

С помощью него пишут многозадачный код. Это позволяет выполнять больше тасков за меньший промежуток времени, что делает наш продукт эффективнее.
Пример? Напишите свой простенький синхронный регер и посмотрите сколько акков он будет делать в те же условные 10 минут. После возьмите регер в эту же тему у допустим Параноика и посмотрите сколько акков сделает его софт за тот же промежуток времени.

Заключение

Данной статьей я хотел дать вам понимания асинка, более подробно вы можете изучить его сами, исходя из яп на котором работаете и ваших целей. Лично я не пожалел что потратил время на прочтение ряда статей и докапывание мужчин в чатах, т.к с асинком жить стало интереснее.