import os from concurrent.futures import ThreadPoolExecutor def new_process(arg): pid = os.fork() if pid == 0: exec_fn("/bin/true", "/bin/true") else: pid, status = os.waitpid(pid, 0) with ThreadPoolExecutor(max_workers=4) as executor: futures = [executor.submit(new_process, None) for i in range(0, 4)] for fut in futures: fut.result()