如何用multiprocessing模块来创建多个进程?
时间: 2024-03-23 09:43:30 浏览: 57
python基于multiprocessing的多进程创建方法
使用`multiprocessing`模块可以很方便地创建多个进程。下面是一个简单的示例代码:
```python
import multiprocessing
def worker():
"""子进程要执行的任务"""
print('子进程执行任务...')
if __name__ == '__main__':
# 创建子进程
p = multiprocessing.Process(target=worker)
# 启动子进程
p.start()
# 等待子进程结束
p.join()
print('主进程结束')
```
在这个例子中,我们首先定义了一个`worker`函数,这个函数是子进程要执行的任务。然后在`if __name__ == '__main__':`语句块中,我们创建了一个子进程`p`,并指定它要执行的任务是`worker`函数。接着,我们启动子进程`p`,等待子进程结束,最后输出`主进程结束`。
如果要创建多个子进程,我们可以使用`for`循环来创建,例如:
```python
import multiprocessing
def worker(num):
"""子进程要执行的任务"""
print(f'子进程{num}执行任务...')
if __name__ == '__main__':
# 创建3个子进程
processes = []
for i in range(3):
p = multiprocessing.Process(target=worker, args=(i,))
processes.append(p)
p.start()
# 等待所有子进程结束
for p in processes:
p.join()
print('主进程结束')
```
在这个例子中,我们定义了一个带有一个参数`num`的`worker`函数,然后使用`for`循环创建了3个子进程,并将它们添加到`processes`列表中。接着,我们启动所有子进程,等待它们结束,最后输出`主进程结束`。
需要注意的是,在Windows系统中,`multiprocessing`模块需要在`if __name__ == '__main__':`语句块中使用,否则会出现`RuntimeError`异常。这是因为Windows下的进程启动方式与Unix/Linux不同,必须将主程序作为一个模块导入到子进程中,否则会出现循环导入的问题。
阅读全文