cpp*_*nja 8 python multithreading
我目前正在试图弄清楚线程如何在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()
Run Code Online (Sandbox Code Playgroud)
我注意到的是两个打印输出相同的东西.为什么线程不会改变?
rob*_*lep 19
您正在执行该功能而不是传递它.试试这个:
t1 = threading.Thread(target = func1, args = (arg1, arg2))
Run Code Online (Sandbox Code Playgroud)
您正在调用该函数,然后再将其提供给Thread构造函数。另外,您给它指定了错误的参数(Thread构造函数的第一个位置参数是group)。假设func1返回的结果None与调用threading.Thread(None)或等效threading.Thread()。线程文档中对此进行了详细说明。
要使代码正常工作,请尝试以下操作:
t1 = threading.Thread(target=func1, args=(arg1, arg2))
t1.start()
t1.join()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18615 次 |
| 最近记录: |