Скорее всего, вы ищете многопроцессорный модуль. То, как вы будете запускать процессы и что они будут делать, на вашей стороне, в то время как модуль даст вам возможность запускать несколько процессов и собирать результаты выполнения каждого процесса вместе с выводом, если таковой имеется.
Ниже приведена краткая реализация первого способа, упомянутого в официальной документации модуля, просто чтобы показать, как это работает:
from multiprocessing import Pool
from subprocess import check_call
commands = [
'echo {time}; sleep {time}; echo {time}'.format(time=5),
'echo {time}; sleep {time}; echo {time}'.format(time=10),
'echo {time}; sleep {time}; echo {time}'.format(time=4),
]
def sample(command):
check_call(command, shell=True)
if __name__ == '__main__':
with Pool(len(commands)) as p:
p.map(sample, commands)