파이썬 데몬스레드가 동작하는 경우.

조회수 514회

anaconda 가상 환경에서 jupyter-lab을 켜고 코드 연습을 하는데

daemon thread는 원래 main이 꺼지면 스레드가 중단되는 것이라고 알고 있습니다.

근데 jupyter-lab에서는 해당 코드가 종료 되더라도, 계속 출력 됩니다.

신기한 점은, PyCharm에서 코드 돌려보면 제가 알고 있는 daemon thread처럼 멈춥니다.

그렇다면, daemon thread가 인식하고 있는 메인 스레드라는 것의 개념이

단순히 '실행'을 지칭하는 게 아닌 셈인가요?

테스트 한 코드는 아래와 같습니다.


    import threading, time

    def standardThread():
        print("Starting my Standard Thread")

    time.sleep(20)
        print("Ending my standard thread")

    def daemonThread():
        while True:
            print("Sending Out Heartbeat Signal")
            time.sleep(2)


    if __name__=="__main__": 

    standardThread = threading.Thread(target=standardThread)
    daemonThread = threading.Thread(target = daemonThread)
    daemonThread.setDaemon(True)
    daemonThread.start()

    standardThread.start()
    ```

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)