-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpy_ad_1_4.py
More file actions
59 lines (44 loc) · 1.44 KB
/
py_ad_1_4.py
File metadata and controls
59 lines (44 loc) · 1.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
"""
Section 1
Multithreading - Thread(2) - Daemon, Join
Keyword - DeamonThread, Join
"""
"""
DaemonThread(데몬스레드)
(1).백그라운드에서 실행
(2).메인스레드 종료시 즉시 종료
(3).주로 백그라운드 무한 대기 시 이벤트 발생시 실행하는 부분 담당
(4).일반 스레드는 작업 종료시 까지 실행
"""
import logging
import threading
import time
# 스레드 실행 함수
def thread_func(name, d):
logging.info("Sub-Thread %s: starting", name)
for i in d:
pass
# print(i)
logging.info("Sub-Thread %s: finishing", 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")
# 함수 인자 확인
# Deamon : Default False
x = threading.Thread(target=thread_func, args=('First', range(20000)), daemon=True)
# x.daemon = True
y = threading.Thread(target=thread_func, args=('Second', range(10000)), daemon=True)
logging.info("Main-Thread : before running thread")
# 서브 스레드 시작
x.start()
y.start()
# DaemonThread 확인
# print(x.isDaemon())
logging.info("Main-Thread : wait for the thread to finish")
# 주석 전후 결과 확인
# x.join()
# y.join()
logging.info("Main-Thread : all done")