Исходя из запуска нескольких экземпляров сценария python одновременно Теперь я могу написать программу python для запуска нескольких экземпляров.
import sys
import subprocess
for i in range(1000):
subprocess.Popen([sys.executable, 'task.py', '{}in.csv'.format(i), '{}out.csv'.format(i)])
Это запускает 1000 подпроцессов одновременно. Если команда, выполняемая каждым подпроцессом, требует значительных вычислительных ресурсов, это может привести к загрузке компьютера (может даже к sh).
Есть ли способ, которым я могу ограничить число подпроцессов бежать за раз? Например, что-то вроде этого:
if (#subprocess_currently_running = 10) {
wait(); // Or sleep
}
Это просто позволяет 10 подпроцессам запускаться одновременно. В случае, если один из десяти завершает, начинайте новый.