Yield from coroutine vs yield from taskКак работает asyncio (python)?
Как сообщалось в этом вопросе (второй ответ) «yield from coroutine()
», как вызов функции. Я не понимаю, как что-то вроде выхода из, что на самом деле ждет завершения сопрограммы, должно включать параллелизм и неблокирующие операции.
Например, в Голанге вы просто рассуждаете по ключевому слову go.
Когда вы делаете что-то вроде:
func function1(){
go function2()
... Some channel communication here
}
случается, что в идеале начало 2 задачи параллельно и могут взаимодействовать одновременно с использованием каналов.
Эти задачи могут быть легко выполнены параллельно (увеличение числа проков), а логика для меня более прямолинейна.
Пожалуйста, помогите мне, пожалуйста, понять это.
«выход из» обеспечивает точку, в которой асинхронно может активно переходить между задачами, чтобы операции блокировки не мешали запускать другие задачи. Для фактического параллелизма потребуется использование ThreadPoolExecutor или ProcessPoolExecutor из модуля concurrent.futures, который может быть запущен в asyncio с использованием метода run_in_executor(). – shongololo