T
Size: a a a
EE
EE
EE
SM
IC
RP
МС
loop.run_in_executor ограничен количеством ядер?МС
МС
def blocking_code(n: int, seconds: int):
import time
import logging
logging.warning(f"starting blocking {n}")
time.sleep(seconds)
logging.warning(f"stop blocking {n}")
return
async def start_thread_blocking_operations():
coros = [run_in_threadpool(partial(blocking_code, n, 5)) for n in range(1, 20)]
await asyncio.gather(*tasks)
и по логам было чётко видно, что 8 раз пишется f"starting blocking {n}", f"stop blocking {n}"
и дальше снова всё по кругу, пока все 20 не пройдёт группами по 8DK
МС
ВЩ
ВЩ
МС
ВЩ
МС
ВЩ