Author: https://t.me/ahillary
Channel: https://t.me/semolina_code_python
Chat: https://t.me/python_with_ahillary
YouTube: https://www.youtube.com/@semolinacode
Coding training: https://t.me/how_to_code_web3
Private group with software: https://t.me/arbuzerspublic
В синхронном приложении код исполняется последовательно. Следующая строка кода выполняется после завершения предыдущей, и в каждый момент времени происходит что-то одно. Эта модель хорошо работает для большинства приложений. Но что, если какая-то одна строка кода занимает слишком много времени? В таком случае весь последующий код должен будет замереть, пока эта строка не соблаговолит завершиться. Многие из нас раньше встречали плохо написанные пользовательские интерфейсы, в которых все поначалу шло хорошо, а потом приложение внезапно зависало, оставляя нас созерцать крутящееся колесико или ждать хоть какого-нибудь ответа.
Любая достаточно длительная операция может блокировать приложение, но особенно часто это бывает, когда приложение ждет завершения ввода-вывода.
Один из способов решения этой проблемы – ввести в программу конкурентность. Говоря по-простому, конкурентность позволяет одновременно выполнять более одной задачи. Примерами конкурентного ввода-вывода могут служить одновременная отправка не- скольких веб-запросов или создание одновременных подключений к веб-серверу.