在python中并行执行'N'函数

时间:2018-11-02 15:37:33

标签: python loops python-multithreading

我知道这个问题已经被问过多次了,但是我找不到可以帮助我的答案。 我的问题是我们可以在python中并行执行两个函数吗,其中每个函数都有一个for循环运行并打印一些值。例如,我有两个函数a()和b(),其中a()打印数字1..n(例如n = 3),b()打印数字11..n(例如n = 13)以及当前时间。我希望输出像:

main

,但当前显示以下内容:

function a :1 2018-11-02 15:32:58
function b :11 2018-11-02 15:32:58
function a :2 2018-11-02 15:32:59
function b :12 2018-11-02 15:32:59

代码:

function a :1 2018-11-02 15:32:58
function a :2 2018-11-02 15:32:59
function b :11 2018-11-02 15:33:00
function b :12 2018-11-02 15:33:01

1 个答案:

答案 0 :(得分:1)

这里的问题是您将target设为a(),而不是a(请注意括号)。这意味着您正在调用函数a,然后将其结果作为target传递到Thread。那不是您想要的-您希望target成为函数a本身。因此,只需在实例化Thread时删除括号,如下所示:

if __name__=="__main__":
    t1=Thread(target=a)
    t2=Thread(target=b)
    t1.start()
    t2.start()