multiprocessing 模块使用示例
时间: 2023-09-17 11:11:24 浏览: 98
好的,下面是一个使用multiprocessing模块的简单示例:
```python
import multiprocessing
def worker(num):
"""worker function"""
print('Worker:', num)
return
if __name__ == '__main__':
jobs = []
for i in range(5):
p = multiprocessing.Process(target=worker, args=(i,))
jobs.append(p)
p.start()
```
这个示例中,我们定义了一个worker函数,并使用multiprocessing模块创建5个进程来执行这个函数。每个进程都会打印出一个数字,表示它是第几个进程。
相关问题
如何使用multiprocessing模块,请给出示例
当使用`multiprocessing`模块时,可以通过创建多个进程来实现并行执行任务。以下是一个示例:
```python
import multiprocessing
def worker(item):
# 在这里执行具体的任务
print(f"Processing item: {item}")
# 要处理的数据列表
data = [1, 2, 3, 4, 5]
# 创建进程池
pool = multiprocessing.Pool()
# 使用进程池并发执行任务
pool.map(worker, data)
# 关闭进程池
pool.close()
pool.join()
```
在上述示例中,我们定义了一个`worker`函数来执行实际的任务。然后,我们创建了一个进程池`multiprocessing.Pool()`。通过调用`pool.map()`方法,我们可以将任务和数据传递给进程池,进程池会自动分配任务给可用的进程并行执行。
需要注意的是,`multiprocessing.Pool()`默认会创建与CPU核心数相等的进程,但你也可以通过指定`processes`参数来控制进程池的大小。在示例中,我们没有指定`processes`参数,因此进程池的大小将根据系统的CPU核心数来确定。
最后,我们需要调用`pool.close()`方法来关闭进程池,并通过`pool.join()`等待所有进程执行完毕。
与多线程不同,使用`multiprocessing`模块可以充分利用多核处理器的优势,因为每个进程都在独立的Python解释器中运行,互不干扰。这使得多进程在处理计算密集型任务时非常有用。
示范下 multiprocessing 模块的使用
当你需要在 Python 中同时执行多个任务时,可以使用 multiprocessing 模块。下面是一个简单的示例代码:
```python
import multiprocessing
def worker(num):
"""worker function"""
print('Worker:', num)
return
if __name__ == '__main__':
jobs = []
for i in range(5):
p = multiprocessing.Process(target=worker, args=(i,))
jobs.append(p)
p.start()
```
在这个示例中,我们定义了一个 worker 函数,它接受一个参数 num,并打印出一个字符串。然后我们使用 multiprocessing 模块创建了 5 个进程,并将它们添加到 jobs 列表中。最后,我们启动了这些进程。
注意,我们在 if __name__ == '__main__': 中使用了这个条件语句,这是因为在 Windows 系统中,如果不加这个条件语句,会导致多个进程无法正常工作。
这就是 multiprocessing 模块的简单示例。
阅读全文