-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
스레드 실행 순서
21.11.27 19:43 작성 조회수 384
0
강의코드 똑같이 작성했는데 실행순서가 왜 다른지 잘 모르겠습니다
3.9.5 버젼입니다.
터미널 창:
19:41:09 : Main-Thread: before creating thread 19:41:09 : Main-Thread: before running thread 19:41:09 : Main-Thread: wait for the thread to finish 19:41:09 : Main-Thread: all done 19:41:09 : Sub-Thread First: starting 19:41:12 : Sub-Thread First: finished
import logging
import threading
import time
# 스레드 실행 함수
def thread_func(name):
logging.info("Sub-Thread %s: starting", name)
time.sleep(3)
logging.info("Sub-Thread %s: finished", name)
# 메인 영역
if __name__ == "__main__":
# 메인 스레드의 흐름을 타는 시작점.
# Logging format 설정
format = "%(asctime)s : %(message)s"
logging.basicConfig(format=format, level=logging.INFO, datefmt="%H:%M:%S")
logging.info("Main-Thread: before creating thread")
# 함수 인자 확인, 스레드 하나 생성, 타겟 : 스레드에서 만들 함수
x = threading.Thread(target=thread_func, args=('First',))
logging.info("Main-Thread: before running thread")
# 서브 스레드 시작
x.start()
# x.join() # 이게 있으면 메인은 스탑되고 서브 스레드 끝나고 나서 밑에 실행
logging.info("Main-Thread: wait for the thread to finish")
logging.info("Main-Thread: all done")
답변을 작성해보세요.
0
좋은사람
지식공유자2021.11.27
순서를 보장하려면 join 메소드 주석풀고 실행하시면 됩니다.
여러 스레드를 생성하면 순서는 보장되지 않아여 강의끝까지 들어보시면 이해가 되실거예요
답변 1