Die von Join geleistete Arbeit ist die Thread-Synchronisierung. Das heißt, nachdem die Haupt-Thread-Aufgabe beendet ist, wechselt sie in den Blockierungsstatus und wartet auf den Abschluss anderer Unter-Threads Thread wird beendet.
Join hat einen Timeout-Parameter: (Empfohlenes Lernen: Python-Video-Tutorial)
Beim Einrichten a Guard Beim Threading bedeutet dies, dass der Hauptthread den untergeordneten Thread beendet, während er auf eine Zeitüberschreitung wartet, und schließlich das Programm beendet. Wenn es also 10 Sub-Threads gibt, ist die Gesamtwartezeit die kumulative Summe jedes Timeouts. Vereinfacht ausgedrückt bedeutet dies, jedem Sub-Thread eine Zeitüberschreitung zu geben und ihn ausführen zu lassen. Wenn die Zeit abgelaufen ist, wird er direkt beendet, unabhängig davon, ob die Aufgabe abgeschlossen ist oder nicht.
Wenn der Daemon-Thread nicht festgelegt ist, wartet der Haupt-Thread auf die Anhäufung von Zeitüberschreitungen und einer solchen Zeitspanne. Wenn die Zeit abgelaufen ist, wird der Haupt-Thread beendet, aber der untergeordnete Thread wird nicht beendet. Der untergeordnete Thread kann weiterhin ausgeführt werden, bis alle untergeordneten Threads beendet sind und das Programm beendet wird.
Die Rolle von Join
import threading import time def run(): time.sleep(2) print('当前线程的名字是: ', threading.current_thread().name) time.sleep(2) if __name__ == '__main__': start_time = time.time() print('这是主线程:', threading.current_thread().name) thread_list = [] for i in range(5): t = threading.Thread(target=run) thread_list.append(t) for t in thread_list: t.setDaemon(True) t.start() for t in thread_list: t.join() print('主线程结束了!' , threading.current_thread().name) print('一共用时:', time.time()-start_time)
Weitere technische Artikel zum Thema Python finden Sie in der Spalte Python-Tutorial, um mehr darüber zu erfahren!
Das obige ist der detaillierte Inhalt vonSo verwenden Sie den Thread-Join in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!