为什么线程在我的Python脚本中不起作用?[duplicate]

xlpyo6sf  于 2022-11-19  发布在  Python
关注(0)|答案(1)|浏览(147)

此问题在此处已有答案

python threading blocks(1个答案)
thread starts running before calling Thread.start(1个答案)
6小时前关门了。
我尝试在计算机上启动以下代码,但线程无法工作:

import threading

def infinite_loop():
    while 1 == 1:
        pass

def myname():
    print("chralabya")

t1 = threading.Thread(target=infinite_loop())
t2 = threading.Thread(target=myname())

t1.start()
t2.start()

当我执行这个程序时,myname()从未被执行。有人能给我解释为什么线程不工作吗?

rxztt3cl

rxztt3cl1#

target=inifinite_loop() * 调用您的函数 *(注意())并将结果(永远不会出现)赋给target参数。这不是您想要的!
相反,您需要将 * 函数本身 * 传递给Thread构造函数:

t1 = threading.Thread(target=infinite_loop)
t2 = threading.Thread(target=myname)

相关问题