Что происходит с циклом событий Asyncio, когда несколько задач, связанных с процессором, выполняются одновременно в ThrePython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Что происходит с циклом событий Asyncio, когда несколько задач, связанных с процессором, выполняются одновременно в Thre

Сообщение Anonymous »

Что происходит с циклом события Asyncio, когда несколько задач, связанных с процессорами, одновременно выполняются одновременно в ThreadPoolexeCutor, с учетом Python's Gil?

Код: Выделить всё

ThreadPoolExecutor
), чтобы не блокировать цикл события.
Я понимаю, что глобальная блокировка интерпретатора Python (GIL) позволяет только один поток выполнять байт -код Python за раз в процессе. Но я хочу уточнить, как это влияет на цикл событий Asyncio, когда множественные задачи < /strong>, связанные с процессором (скажем, 10), отправляются одновременно в пул потоков. < /P>

сценарий < /h2>
  • . Пул потоков с несколькими рабочими потоками (например, 10 потоков).
  • Десять синхронных задач, связанных с процессором, представлены почти одновременно, каждая из них работает за кодом Python, в котором хранятся GIL во время выполнения. /> < /ul>

    Что я понимаю < /h2>

    Когда поток удерживает GIL, нет другой нить или цикл событий, которые могут запускать Python Bytecode. < /li>
    это. there’s no guarantee the event loop will get immediate priority.
  • Therefore, multiple CPU-bound tasks running concurrently in the thread pool can serially monopolize the GIL, delaying the event loop and causing increased latency and reduced responsiveness.
My Questions

Точнее ли это понимание относительно того, как конфликт GIL влияет на цикл Asyncio Event? Это отдает предпочтение потоке цикла событий над теми работников в таких сценариях? < /li>
Есть ли рекомендуемые лучшие практики или архитектурные паттерны, чтобы избежать этой проблемы, помимо перемещения задач, связанных с процессором, к ProcessPoolexecutor < /code> или внешние услуги? Принимая во внимание использование ThreadPoolexeCutor < /code> в FastApi для выполнения некоторых блокирующих задач, связанных с процессором, асинхронно, но хочет понять последствия для реагирования на петлю события, когда несколько таких задач выполняются одновременно. < /p>

Заранее.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... un-concurr
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»