ThreadPoolExecutor
import subprocess
def run_process():
p = subprocess.Popen(['sleep', '1'])
p.wait()
with ThreadPoolExecutor(max_workers=10) as Exe:
for i in range(10):
Exe.submit(run_process())```
исполняется 10 секунд вместо одной:
time python ./test-subprocess.py
real 0m10.149s
user 0m0.040s
sys 0m0.047s
wait блокирует теущий тред
судя по threading.current_thread().name я все время нахожусь в MainThread где же ThreadPoolExecutor
ты в экзекьютор передаешь результат вызова run_process, то есть по факту None
а в целом в чем идея вообще? Зачем тебе трепуд экзекьютр и саб процесс одновременно?
асинк без оборачивания в таски бессмысленен?
ну если у тебя всего один таск, то смысла действительно нет
тогда код не конкуретный
а как вообще это работает что мы ждем выполнение одного и паралельно делаем второе без тредов? или мы прост ничего не делаем а делаем типо паузу при долгих ожиданиях инфы откуда-то ещё?
почитай про неблокирубщие сокеты
Обсуждают сегодня