我知道这个问题已经被问过多次了,但是我找不到可以帮助我的答案。 我的问题是我们可以在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
答案 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()