如何使用 Python 并行性同时执行函数
在 Python 中,寻求同时执行多个函数可能是一个挑战。特别是,当功能独立运行且互不干扰时,等待一个功能完成后再启动另一功能会限制效率。为了解决这个问题,Python 提供了两种方法:线程和多重处理。
探索多重处理以实现真正的并行
多重处理是在 Python 中实现真正并行性的更好选择,因为CPython 施加的限制。下面是一个完整的示例,演示了多处理的使用:
from multiprocessing import Process def func1(): print("func1: starting") for i in range(10000000): pass print("func1: finishing") def func2(): print("func2: starting") for i in range(10000000): pass print("func2: finishing") if __name__ == "__main__": p1 = Process(target=func1) p1.start() p2 = Process(target=func2) p2.start() p1.join() p2.join()
此方法采用 Python 多处理模块中的 Process 类来生成和管理每个函数的子进程。通过启动和加入进程,func1和func2都可以并行执行。
封装并行执行
启动和加入进程的机制可以方便地封装成一个function:
def runInParallel(*fns): proc = [] for fn in fns: p = Process(target=fn) p.start() proc.append(p) for p in proc: p.join() runInParallel(func1, func2)
该函数接受任意数量的函数作为输入并启动它们的并行执行。它抽象了底层的流程处理,使您能够同时无缝地执行多个功能。
以上是如何使用并行性同时运行多个 Python 函数?的详细内容。更多信息请关注PHP中文网其他相关文章!