python 多进程使用示例
时间: 2023-09-23 20:06:46 浏览: 102
好的,以下是一个简单的 Python 多进程的示例代码:
```python
import multiprocessing
def worker(num):
"""子进程要执行的代码"""
print('Worker %s is running' % num)
if __name__ == '__main__':
# 创建进程池,最大进程数为4
pool = multiprocessing.Pool(processes=4)
# 启动5个子进程
for i in range(5):
pool.apply_async(worker, (i,))
# 关闭进程池,等待所有进程执行完毕
pool.close()
pool.join()
print('All processes have completed')
```
在该示例中,我们使用 Python 自带的 multiprocessing 库创建了一个进程池,并启动了5个子进程。每个子进程会执行 worker 函数中的代码,输出一个字符串。在代码的最后,我们关闭了进程池,等待所有子进程执行完毕,然后输出一个提示信息。
希望这个示例可以帮助你了解 Python 多进程的使用方法。
相关问题
python 多进程复杂示例
在Python中,多进程是一个强大的工具,可以实现并发执行任务,提高程序性能。下面是一个复杂的多进程示例,它展示了如何使用`multiprocessing`模块创建一个池(Pool)来并行处理一组计算密集型任务:
```python
import multiprocessing as mp
# 定义一个计算斐波那契数列的函数,我们将这个函数分发给工作进程
def fibonacci(n):
if n <= 0:
return "Invalid input"
elif n == 1 or n == 2:
return 1
else:
return fibonacci(n - 1) + fibonacci(n - 2)
# 创建一个包含4个工作进程的进程池
pool = mp.Pool(processes=4)
# 提交一组计算任务到进程池
tasks = [i for i in range(50)]
results = pool.map(fibonacci, tasks)
# 等待所有任务完成,并打印结果
print("Fibonacci results:", {i: results[i] for i in range(len(tasks))})
# 关闭进程池,释放资源
pool.close()
pool.join()
python多进程代码示例
Python中使用`multiprocessing`模块可以轻松实现多进程编程。这里有一个简单的多进程代码示例,它创建两个子进程并分别执行不同的任务:
```python
import multiprocessing
def worker_process(task):
"""子进程中执行的任务"""
print(f"Worker {multiprocessing.current_process().name} received task: {task}")
# 这里是实际的任务处理代码,例如计算、网络请求等
result = task * 2
print(f"Task {task} completed with result: {result}")
if __name__ == "__main__":
# 创建进程池
pool = multiprocessing.Pool(processes=2) # 创建两个进程
# 提交任务给进程池
tasks = [1, 2, 3, 4, 5]
results = pool.map(worker_process, tasks)
# 关闭进程池
pool.close()
pool.join()
print("All processes finished.")
```
在这个例子中:
- `worker_process`函数是子进程要执行的函数。
- `multiprocessing.Pool`用于创建进程池,参数`processes=2`表示创建2个进程。
- `pool.map`方法将`tasks`列表中的每个元素映射到`worker_process`函数,每个任务在独立的进程中运行。
- `pool.close()`关闭进程池的接收新任务的能力,`pool.join()`等待所有进程完成。
相关问题:
1. Python中还有哪些用于多进程的库?
2. 多进程和多线程有什么区别?
3. 在处理大量任务时,如何优化Python的多进程性能?
阅读全文