강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của zettakim
zettakim

câu hỏi đã được viết

Python trở thành chuyên gia: Học cú pháp đồng thời và song song Feat. Đa luồng vs Đa xử lý (Inflearn Original)

Chủ đề(2) - Daemon, Tham gia

daemon=True가 안 먹히네요

Viết

·

65

0

안녕하세요.

저는 daemon=True 해도 서브가 모두 돌고 끝납니다. 무슨 이유가 있을까요?

 


# 스레드 실행 함수
def thread_func(name, d):
    logging.info('Sub-Thread %s: starting', name)

    for i in d:
        print(i)

    logging.info('Sub-Thread %s: finished', name)

...


# 함수 인자 확인
    # daemon : default False
    x = threading.Thread(target=thread_func, args=('First', range(20000)), daemon=True)
    y = threading.Thread(target=thread_func, args=('Second',range(10000)), daemon=True)

19:16:32: Main-Thread: all done

0

1

2

...

19999

19:16:32: Sub-Thread Second: finished

19:16:32: Sub-Thread First: finished

python동시성

Câu trả lời 2

1

niceman님의 프로필 이미지
niceman
Người chia sẻ kiến thức

네 안녕하세요. 좋은 질문입니다.

메인쓰레드가 먼저 종료된것처럼 보이나, 실제로는 메인쓰레드 출력과 동시에
데몬쓰레드 출력이 나중에 표시된 것입니다.
실제 업무 환경에서도 ide에서 print 문으로 텍스트를 출력하는 시간이 미세하게
차이가 있습니다.
소스코드는 정상입니다.
주로
logging

  • I/O flush

  • lock

  • handler 종료 대기


    등으로 아주 짧은 시간이지만 데몬쓰레드 실행이 끝나버립니다.(컴퓨터 성능이 그만큼 빠르기 때문)

참고 하시면 될 것 같습니다.

감사합니다.

0

Zetta Kim님의 프로필 이미지
Zetta Kim
Người đặt câu hỏi

설명 감사합니다.

Hình ảnh hồ sơ của zettakim
zettakim

câu hỏi đã được viết

Đặt câu hỏi