1. 使用`multiprocessing`模块:
导入`multiprocessing`模块。
创建`Process`类的实例,并将任务执行函数作为参数传入。
使用`start()`方法启动进程。
使用`join()`方法等待进程执行完成。
示例代码:
```python
from multiprocessing import Process
def worker():
print(f"Worker {os.getpid()} is running...")
if __name__ == "__main__":
processes = []
for i in range(5):
p = Process(target=worker)
processes.append(p)
p.start()
for p in processes:
p.join()
print("All tasks are done.")
2. 使用`concurrent.futures`模块:
导入`concurrent.futures`模块中的`ProcessPoolExecutor`。
使用`submit()`方法提交任务。
使用`result()`方法获取任务执行结果。
示例代码:
```python
from concurrent.futures import ProcessPoolExecutor
def worker(num):
print(f"Worker {num} is running...")
return f"Result from worker {num}"
if __name__ == "__main__":
with ProcessPoolExecutor() as executor:
results = [executor.submit(worker, i) for i in range(5)]
for result in results:
print(result.result())
以上两种方法都可以实现多进程处理,但`multiprocessing`模块可以实现真正的并行计算,因为每个进程拥有自己的Python解释器和内存空间,不受全局解释器锁(GIL)的限制。而`concurrent.futures`模块提供了一个更高级别的接口,可以方便地管理进程池。
请根据具体需求选择合适的方法进行多进程处理