
并行运行函数:多处理指南
概念
多任务涉及执行多个并发任务,可以通过线程或线程来实现这一壮举多处理。
多处理与线程
在 Python 中,线程主要用于 I/O 密集型操作。对于 CPU 密集型任务,多处理可提供更好的性能,因为它利用多个处理器核心。
并行运行函数
考虑以下场景:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 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,应使用多处理。下面是一个例子:
1 2 3 4 5 6 7 8 9 | from multiprocessing import Process
if __name__ == "__main__" :
p1 = Process(target=func1)
p1.start()
p2 = Process(target=func2)
p2.start()
p1.join()
p2.join()
|
登录后复制
封装并行执行
上面的代码可以简化为一个函数,方便多个函数的并行执行:
1 2 3 4 5 6 7 8 9 10 | 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中文网其他相关文章!