2013-04-05 47 views
0

常作爲我已瀏覽這個問答&一個網站,使用多線程和處理問題的答案都告訴我要使用是這樣的格式:編程理論Gods Strike:什麼是Python 2.x中的target = foo?

(target=foo, args=(bar, baz)) 

這是最經常在multiprocessing使用, multithreading(至少我的知識水平有限)

我的問題是,target是什麼意思,有人可以解釋它是如何使用的嗎?

我一直無法在docs或其他地方找到很好的解釋。

回答

5

關鍵字參數targetthreading.Thread的構造函數中設置新線程的入口點。這可以是一個函數或一個具有方法__call__的對象。

下面是一個使用功能的例子:

import threading 

def foo(number, name): 
    print 'Hello from new thread' 
    print 'Here are some arguments:', number, name 

thread = threading.Thread(target=foo, args=(5,'bar')) 
thread.start() 

thread.join() 
+0

您可以通過顯示參數如何傳遞來改進此答案。 – detly 2013-04-05 05:36:21

+0

'thread.join'是什麼意思? – xxmbabanexx 2013-04-13 20:38:34

+0

'join'等待線程完成執行。雖然在這個例子中並不重要,但是如果'foo'執行時間過長,這將是必需的。 – bonf 2013-04-19 08:14:17

0

target只是在新線程/進程中調用的可調用對象。

threading documentation

target是由run()方法調用的調用對象。默認爲None,這意味着什麼都不會被調用。

+0

能否請您詳細說說嗎?至少提供一些鏈接和示例。 – xxmbabanexx 2013-04-05 04:30:07

相關問題