繁体   English   中英

为什么在python线程模块中所有线程的名称都相同?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM