我目前正试图弄清楚线程在python中是如何工作的。
我有以下代码:
def func1(arg1, arg2):
print current_thread()
....
class class1:
def __init__():
....
def func_call():
print current_thread()
t1 = threading.Thread(func1(arg1, arg2))
t1.start()
t1.join()
我注意到两个指纹输出的是一样的。为什么线没变?
Tags:
您正在执行函数,而不是传递它。请改为:
在将函数赋给
Thread
构造函数之前,您正在调用它。 另外,您给出的参数是错误的(线程构造函数的第一个位置参数是group
)。假设func1
返回None
,则您所做的操作等同于调用threading.Thread(None)
或threading.Thread()
。 这在threading docs中有更详细的解释。要使代码正常工作,请尝试以下操作:
相关问题 更多 >
编程相关推荐