2014-04-16 84 views
2

我正在嘗試打印計時器線程的默認線程名稱,但沒有打印任何內容,請讓我知道我做了什麼錯誤。無法打印python線程名稱

from threading import current_thread, Timer,Thread 
def def1(): 
    print "inside def1 method",current_thread() 

timer1 = Timer(0,def1, []) 
timer1.setDaemon(True) 
timer1.start() 

和輸出

inside def1 method 

爲什麼上面的代碼不打印線程的名字,請讓我知道。我正在使用python 2.7

在此先感謝。

回答

3

timer1是一個守護進程線程。最有可能的原因是它在得到機會打印current_thread()的結果之前被殺死(通過進程終止)。

試着加入該線程,看它是否有差別(它確實對我來說):

from threading import current_thread, Timer,Thread 

def def1(): 
    print "inside def1 method",current_thread() 

timer1 = Timer(0,def1, []) 
timer1.setDaemon(True) 
timer1.start() 
timer1.join() # <====== ADD THIS