首页 >后端开发 >Python教程 >如何使用多重处理并行运行多个 Python 函数?

如何使用多重处理并行运行多个 Python 函数?

DDD
DDD原创
2024-12-05 07:50:13448浏览

How Can I Run Multiple Python Functions in Parallel Using Multiprocessing?

并行运行函数:多处理指南

概念

多任务涉及执行多个并发任务,可以通过线程或线程来实现这一壮举多处理。

多处理与线程

在 Python 中,线程主要用于 I/O 密集型操作。对于 CPU 密集型任务,多处理可提供更好的性能,因为它利用多个处理器核心。

并行运行函数

考虑以下场景:

import common

dir1 = 'C:\folder1'
dir2 = 'C:\folder2'
filename = 'test.txt'
addFiles = [25, 5, 15, 35, 45, 25, 5, 15, 35, 45]

def func1():
   c = common.Common()
   for i in range(len(addFiles)):
       c.createFiles(addFiles[i], filename, dir1)
       c.getFiles(dir1)
       time.sleep(10)
       c.removeFiles(addFiles[i], dir1)
       c.getFiles(dir1)

def func2():
   c = common.Common()
   for i in range(len(addFiles)):
       c.createFiles(addFiles[i], filename, dir2)
       c.getFiles(dir2)
       time.sleep(10)
       c.removeFiles(addFiles[i], dir2)
       c.getFiles(dir2)

要同时执行 func1 和 func2,应使用多处理。下面是一个例子:

from multiprocessing import Process

if __name__ == "__main__":
    p1 = Process(target=func1)
    p1.start()
    p2 = Process(target=func2)
    p2.start()
    p1.join()
    p2.join()

封装并行执行

上面的代码可以简化为一个函数,方便多个函数的并行执行:

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn