Запуск exe файла много раз параллельно
Всем привет, есть файл .exe который выполняется +- 10 секунд, запускать этот файл обычным циклом очень долго, так как запустить его нужно много раз. Я решил использовать потоки для этого:
import subprocess
import threading
mutex = threading.Lock()
i = 0
def worker():
global i
while True:
mutex.acquire()
i += 1
mutex.release()
cmd = f"C:\\Users\\123\\Desktop\\main.exe"
returned_output = str(subprocess.check_output(cmd))
print(returned_output)
def run_workers(count):
threads = [threading.Thread(target=worker) for i in range(0, count)]
for thread in threads:
thread.start() # каждый поток должен быть запущен
for thread in threads:
print("Поток завершился")
thread.join() # дожидаемся исполнения всех потоков
if __name__ == "__main__":
run_workers(50)
main.exe не сильно нагружает компьютер, по этому 50 потоков нагрузит на 20% компьютер. Проблема в том что, когда запускаешь, он все равно медленно работает, а в диспетчере задач показано что запущено 3-4 main.exe. В чем проблема? почему вместо 50 запускается 3-4 main.exe, и к тому же через время и они останавливаются.