parallel processing in python
module | usage |
threading
|
t1 = threading.Thread(target=print_square, args=(10,))
t1.start()
t1.join()
|
concurrent.futures
|
pool = concurrent.futures.ThreadPoolExecutor(max_workers=2)
pool.submit(worker)
pool.shutdown(wait=True)
|
multiprocessing
|
p1 = multiprocessing.Process(target=worker1)
p1.start()
p1.join()
|
subprocess.Popen
|
p1 = subprocess.Popen("ls")
p1.wait()
|
from multiprocessing import Process
from threading import Thread
import shutil
import numpy as np
import os
import sys
import subprocess
chunkN = 16
ll_proc = []
for chkIdx in range(chunkN):
cmd = f"app.exe -F test_{chkIdx:03d}.cfg"
print(cmd)
# os.system(cmd)
ll_proc.append(subprocess.Popen(
cmd, shell=True
))
print(f"chunk {chkIdx} is started.")
for idx, pp in enumerate(ll_proc):
pp.wait()
print(f"chunk {idx:4d} is finished.")
print("all finished.")
os.system("pause")
Multithreading in Python - GeeksforGeeks: https://www.geeksforgeeks.org/multithreading-python-set-1/