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