线程不运行(python3.6)
我发现Python3.6中的线程模块工作不正常。 问题是: 线程在调用任何线程名称之前开始运行。 此外,代码不会进入下一步,在下一步中声明代码中的第一个线程对象 例如:线程不运行(python3.6),python,multithreading,python-3.x,python-multithreading,Python,Multithreading,Python 3.x,Python Multithreading,我发现Python3.6中的线程模块工作不正常。 问题是: 线程在调用任何线程名称之前开始运行。 此外,代码不会进入下一步,在下一步中声明代码中的第一个线程对象 例如: import threading def a(): while(1): print(1) def b(): while(1): print(222) t = threading.Thread(target = a()) v = threading.Thread(target
import threading
def a():
while(1):
print(1)
def b():
while(1):
print(222)
t = threading.Thread(target = a())
v = threading.Thread(target = b())
结果:
1.
1.
1.
1.
1.
1.
1.
1.
... 无限您需要将回调分配给目标。不要使用以下命令调用函数:
线程将为您运行这些函数。这意味着您正在自己调用它们并试图将返回值分配给目标,但这些函数不会返回,因为它们将永远运行。@IsaacKim如果答案有帮助,您可以将其标记为已接受。单击我答案旁边的灰色复选框。这很有帮助。谢谢。这些函数不会返回是什么意思,因为它们永远运行?@user2259963 OP调用函数target=a,因此函数在初始化线程之前开始运行。因为函数永远不会结束,所以线程永远不会初始化。
t = threading.Thread(target=a)
v = threading.Thread(target=b)