조인의 역할이 강조됩니다. 조인이 수행하는 작업은 스레드 동기화입니다. 즉, 메인 스레드 작업이 끝난 후 차단 상태로 들어가고 메인 스레드가 종료되기 전에 다른 하위 스레드의 실행이 완료되기를 기다립니다. .
join에는 시간 초과 매개변수가 있습니다. (권장 학습: Python 비디오 자습서)
데몬 스레드를 설정할 때 이는 기본 스레드가 시간 초과를 기다릴 때 하위 스레드를 종료한다는 의미입니다. 프로그램을 종료하세요. 따라서 하위 스레드가 10개라면 총 대기 시간은 각 타임아웃의 누적 합계가 됩니다. 간단히 말하면, 각 하위 스레드에 시간 초과를 부여하고 시간이 지나면 작업 완료 여부에 관계없이 바로 종료됩니다.
데몬 스레드가 설정되지 않은 경우 기본 스레드는 시간 초과가 누적될 때까지 대기합니다. 시간이 지나면 기본 스레드는 종료되지만 하위 스레드는 종료되지 않습니다. 모든 하위 스레드가 종료될 때까지 계속 실행됩니다. 프로그램이 종료됩니다.
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)
더 많은 Python 관련 기술 기사를 보려면 Python 튜토리얼 칼럼을 방문하여 알아보세요!
위 내용은 Python 스레드 조인을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!