在Python中,多进程是一种常用的并发执行方式,特别是在需要执行CPU密集型任务时。本文将探讨Python多进程的高级用法,包括进程池、共享内存、进程间通信等。
进程池
进程池(multiprocessing.Pool
)是一个非常有用的工具,它可以简化多进程编程。使用进程池,你可以轻松地创建和管理多个进程,而无需手动创建每个进程。
from multiprocessing import Pool
def worker(num):
return num * num
if __name__ == '__main__':
with Pool(4) as p:
result = p.map(worker, range(10))
print(result)
共享内存
共享内存是进程间通信的一种方式,它允许多个进程访问同一块内存区域。在Python中,可以使用multiprocessing.Array
或multiprocessing.Value
来实现共享内存。
from multiprocessing import Array, Process
def worker(shared_array):
for i in range(len(shared_array)):
shared_array[i] = i * i
if __name__ == '__main__':
shared_array = Array('i', 10)
p = Process(target=worker, args=(shared_array,))
p.start()
p.join()
print(shared_array)
进程间通信
进程间通信(IPC)是进程间交换数据的一种方式。Python提供了多种IPC机制,如管道、队列、共享内存等。
from multiprocessing import Queue
def worker(q):
for i in range(5):
q.put(i * i)
if __name__ == '__main__':
q = Queue()
p = Process(target=worker, args=(q,))
p.start()
while not q.empty():
print(q.get())
p.join()
扩展阅读
更多关于Python多进程的内容,请参阅Python多进程教程。
图片展示
Python 多进程