LINUX.ORG.RU

запуск sync кода в asyncio

 


0

1

В asyncio есть код:

futures = [loop.run_in_executor(thread_pool=4, sync_f(x)) for x in range(100) ]
results = await asyncio.gather(*futures)

Аналогично ли это запуску 4 threads + использование очереди при использовании модуля Threading ?

Т е реально asyncio будет запускать 4 threads чтобы разгребсти очередь из 100 sync заданий ?



Последнее исправление: Jopich1 (всего исправлений: 1)

Да, если «The executor argument should be an concurrent.futures.Executor instance. The default executor is used if executor is None»

А что у тебя там за thread_pool=4 - не ясно

menangen ★★★★★
()

Во-первых у тебя синтаксическая ошибка. Аргумент без ключа после аргумента с ключем. Во-вторых какую версию питона ты используешь вообще? В 3.7 run_in_executor выглядит вот так, и никаких thread_pool там нет.

def run_in_executor(self, executor, func, *args):

В-третьих использование настоящих параллельных тредов в питоне нвозможно, да и asyncio не для этого сделан. Если тебе нужна параллельность смотри в multiprocessing.

Aswed ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.