簡體   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