2014-08-29 74 views
2

我讀過一些這樣的代碼。Python線程結構

def bind(): 
    while True: 
     line = raw_input() 
     #do something 

def worker(): 
    print "i'm working" 
    #do something 

th = threading.Thread(target=worker) 
th.daemon = True 
th.start() 
time.sleep(0.5) 
bind() 

工人是什麼意思?爲什麼不使用

th = threading.Thread(target=bind) 

回答

2

我想你想問爲什麼worker被用作守護線程但不綁定。

守護線程意味着整個Python程序在只剩下守護線程時退出。

函數worker被設置爲守護進程線程。這裏意味着無論函數worker是否完成,一旦函數綁定返回,函數worker將立即終止。

Here是守護進程的一些指令。檢查第16.2.1節。希望能幫助到你。

+0

守護進程對應哪些函數?初始化函數或主函數? – huythang 2014-08-29 06:10:56

+0

@huythang代碼中沒有init函數。主要功能是主要過程。 threading.Thread在代碼中啓動一個新線程,th.daemon將這個新線程設置爲守護進程。在這個新的守護進程線程中,函數worker正在運行。 – 2014-08-29 06:17:48

+0

@huythang如果沒有更多的問題,不要忘記接受它作爲答案。謝謝! – 2014-08-29 12:46:44