如何在 Python 中分叉多个子进程?
How can I fork many child process in Python?
我想生成子进程并同时下载(我实际上不知道 simultaneous
,但看起来它发生了 simultaneous
)每个进程中 wget
。
for download_cmd in cmd_list:
pid = os.fork()
if pid == 0:
fd = subprocess.Popen(download_cmd)
else:
cur_num_of_process += 1
if pid != 0:
while cur_num_of_process > 0 :
os.wait()
cur_num_of_process -= 1
但它不起作用。有什么帮助吗?
Python 版本为 3.x
您正在等待每个 child,因此您永远不会创建多个。
经典叉炸弹,在 python 中。仅作为实验尝试此操作,仅在您自己的设备上(例如,不是在计算机实验室的系统上),并准备好处理后果。这演示了分叉许多(很多,很多)child 个进程。
while True:
os.fork()
您想要的是创建一个进程集合,然后在每个进程启动后等待它们。
workers = []
for cmd in [...]:
proc = subprocess.Popen(cmd, ...)
workers.append(proc)
for proc in workers:
proc.wait()
我想生成子进程并同时下载(我实际上不知道 simultaneous
,但看起来它发生了 simultaneous
)每个进程中 wget
。
for download_cmd in cmd_list:
pid = os.fork()
if pid == 0:
fd = subprocess.Popen(download_cmd)
else:
cur_num_of_process += 1
if pid != 0:
while cur_num_of_process > 0 :
os.wait()
cur_num_of_process -= 1
但它不起作用。有什么帮助吗?
Python 版本为 3.x
您正在等待每个 child,因此您永远不会创建多个。
经典叉炸弹,在 python 中。仅作为实验尝试此操作,仅在您自己的设备上(例如,不是在计算机实验室的系统上),并准备好处理后果。这演示了分叉许多(很多,很多)child 个进程。
while True:
os.fork()
您想要的是创建一个进程集合,然后在每个进程启动后等待它们。
workers = []
for cmd in [...]:
proc = subprocess.Popen(cmd, ...)
workers.append(proc)
for proc in workers:
proc.wait()