使用python完成函数后运行一个函数

时间:2017-10-02 05:57:53

标签: python parallel-processing

假设我有5个函数:f1()f2()f3()f4()f5()。 我需要并行运行f1和f2。完成后我需要并行运行f3和f4,然后在f3和f4结束后运行f5。使用python。 有什么帮助吗?

2 个答案:

答案 0 :(得分:0)

您应该结帐threading库。

以下是我在python3中提出的一个例子:

import threading

def f1():
    print('f1')
def f2():
    print('f2')
def f3():
    print('f3')
def f4():
    print('f4')
def f5():
    print('f5')

t1 = threading.Thread(target=f1)
t2 = threading.Thread(target=f2)
t1.start()
t2.start()
t1.join()
t2.join()
t1 = threading.Thread(target=f3)
t2 = threading.Thread(target=f4)
t1.start()
t2.start()
t1.join()
t2.join()
f5()

希望它有所帮助!

答案 1 :(得分:0)

您可以使用multithreading来实现您的目标。首先,您需要启动两个线程来执行第一和第二个函数,然后您可以使用thread.join()等待线程终止,然后启动其他函数。以下是如何完成的示例:

import threading
l = [f1, f2, f3, f4, f5]
while l:
    if len(l) == 1:
        l.pop()()
    else:
        t1 = threading.Thread(target=l.pop())
        t2 = threading.Thread(target=l.pop())
        t1.start()
        t2.start()
        t1.join()
        t2.join()