Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
线程不运行(python3.6)_Python_Multithreading_Python 3.x_Python Multithreading - Fatal编程技术网

线程不运行(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

我发现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 = b())
结果: 1. 1. 1. 1. 1. 1. 1. 1.
... 无限

您需要将回调分配给目标。不要使用以下命令调用函数:


线程将为您运行这些函数。这意味着您正在自己调用它们并试图将返回值分配给目标,但这些函数不会返回,因为它们将永远运行。

@IsaacKim如果答案有帮助,您可以将其标记为已接受。单击我答案旁边的灰色复选框。这很有帮助。谢谢。这些函数不会返回是什么意思,因为它们永远运行?@user2259963 OP调用函数target=a,因此函数在初始化线程之前开始运行。因为函数永远不会结束,所以线程永远不会初始化。
t = threading.Thread(target=a)
v = threading.Thread(target=b)