在Python中,start()
和run()
函數通常用于線程(threading)模塊。它們之間的主要區別在于它們的用途和功能。
start()
函數:
start()
函數是Thread
類的一個方法,用于啟動一個新線程,使其開始執行。當你創建一個Thread
對象時,需要傳遞一個可調用對象(如函數)作為參數,該可調用對象將在新線程中運行。start()
函數負責創建新線程并執行這個可調用對象。一旦線程開始運行,你就不能再次調用start()
方法,因為一個線程只能運行一次。示例:
import threading
def my_function():
print("Hello from a new thread!")
# 創建一個Thread對象
my_thread = threading.Thread(target=my_function)
# 啟動新線程
my_thread.start()
run()
函數:
run()
函數是Thread
類的另一個方法,它是在新線程中執行的默認方法。當你創建一個Thread
子類并重寫run()
方法時,新線程將執行你在run()
方法中定義的代碼。通常情況下,你不會直接調用run()
方法,因為它是由start()
方法在新線程中自動調用的。示例:
import threading
class MyThread(threading.Thread):
def run(self):
print("Hello from a new thread!")
# 創建一個MyThread對象
my_thread = MyThread()
# 啟動新線程
my_thread.start()
總結:
start()
函數用于啟動新線程并執行傳遞給Thread
對象的可調用對象。run()
函數是在新線程中執行的默認方法,通常在創建Thread
子類并重寫該方法時使用。