Глобальная блокировка интерпретатора - это мьютекс, который защищает доступ к объектам Python, предотвращая одновременное выполнение байт-кодами Python несколькими потоками.
Это означает, что это влияет на производительность вашего многопоточного кода.AsyncIO больше относится к обработке параллельных запросов, чем к параллельным.С AsyncIO ваш код сможет обрабатывать больше запросов даже с помощью однопоточного цикла, потому что сетевой ввод-вывод будет асинхронным.Это означает, что в то время, когда сопрограмма извлекает сетевой ресурс, он «приостанавливает» и не блокирует поток, в котором он работает, и позволяет другим сопрограммам выполняться.Основная идея asyncIO состоит в том, что даже с одним потоком ваш процессор может постоянно выполнять вычисления вместо ожидания сетевого ввода-вывода.
Если вы хотите больше узнать об asyncIO, вам нужно понять разницу между параллелизмоми параллелизм.Это превосходно Поговорим об этом предмете , но принципы те же.
Так что даже если в python есть GIL, производительность с asyncIO будет намного лучше, чем при использовании традиционных потоков. Вот некоторые тесты :