[英]why is name of all threads same in python threading module?
from threading import *
def myfunc(i,name):
print("This is " + str(name))
for i in range(4):
name = current_thread().name
t = Thread(target=myfunc, args=(i,name,))
t.start()
current_thread().getName()
也给出相同的结果。我想知道这是它的工作方式还是在运行相同的线程,因此它传递名称MainThread
吗?
输出:
这是MainThread
这是MainThread
这是MainThread
这是MainThread
current_thread()
始终返回称为current_thread()
的线程。 您要反复获取执行循环的线程的名称,而不是该线程启动的任何线程的名称。
如果要获取循环中启动的线程的名称,可以让它们调用current_thread()
:
import threading
def target():
print("This is", threading.current_thread().name)
for i in range(4):
Thread(target=target).start()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.