gpt4 book ai didi

python - 在python中并行执行任务

转载 作者:IT老高 更新时间:2023-10-28 20:33:03 25 4
gpt4 key购买 nike

我使用的是 python 2.7,我有一些看起来像这样的代码:

task1()
task2()
task3()
dependent1()

task4()
task5()
task6()
dependent2()

dependent3()

这里唯一的依赖如下:dependent1需要等待task1-3,dependent2需要等待task 4-6,dependent3需要等待depends1-2……下面就可以了:运行整体6 个任务首先并行,然后是前两个依赖项并行.. 然后是最后一个依赖项

我更喜欢让尽可能多的任务并行运行,我搜索了一些模块,但我希望避免使用外部库,并且不确定 Queue-Thread 技术如何解决我的问题(也许有人可以推荐好资源?)

最佳答案

内置 threading.Thread类(class)提供您所需要的一切:start开始一个新线程和join等待线程结束。

import threading

def task1():
pass
def task2():
pass
def task3():
pass
def task4():
pass
def task5():
pass
def task6():
pass

def dep1():
t1 = threading.Thread(target=task1)
t2 = threading.Thread(target=task2)
t3 = threading.Thread(target=task3)

t1.start()
t2.start()
t3.start()

t1.join()
t2.join()
t3.join()

def dep2():
t4 = threading.Thread(target=task4)
t5 = threading.Thread(target=task5)

t4.start()
t5.start()

t4.join()
t5.join()

def dep3():
d1 = threading.Thread(target=dep1)
d2 = threading.Thread(target=dep2)

d1.start()
d2.start()

d1.join()
d2.join()

d3 = threading.Thread(target=dep3)
d3.start()
d3.join()

或者加入你可以使用Queue.join等待线程结束。

关于python - 在python中并行执行任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8241099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com