반응형
#쓰레드
*한 프로세스 안에서 동시에 실행되는 코드(로직,함수)
*가상의 CPU ( VCPU ) 역할을 한다.
*VCPU에게 시간을 각각 조금씩 할당해서 동시에 실행되는 듯한 모습을 보여준다. -> 시분할 (Time Slicing)
과정
1. 쓰레드에게 넘겨줄 함수(행동) 만들기
import time
from datetime import datetime
def timer_t(name): #타이머를 보여주는 함수
num = 0
while True:
num += 1
print(f'{name} - {num}\n')
time.sleep(1)
if num == 10:
break
def number_t(name): #날짜 시간을 보여주는 함수
cnt = 0
while True:
cnt += 1
print(f'{name} - {datetime.now()}\n')
time.sleep(1)
if cnt == 10:
break
2. 쓰레드를 통한 실행 ( time.sleep(1)으로 인해 1초씩 쉬었다 실행했다 반복 )
import threading
# target-> 실행할 타겟
#args -> 타겟에게 넘겨줄 값
t1 = threading.Thread(target=number_t,args=('num_t',))
t2 = threading.Thread(target=timer_t,args=('time_t',))
t1.start()
t2.start()
num_t - 2022-08-18 17:55:54.072050
time_t - 1
num_t - 2022-08-18 17:55:55.074741
time_t - 2
num_t - 2022-08-18 17:55:56.082885
time_t - 3
num_t - 2022-08-18 17:55:57.092764
time_t - 4
num_t - 2022-08-18 17:55:58.102212
time_t - 5
num_t - 2022-08-18 17:55:59.106953
time_t - 6
num_t - 2022-08-18 17:56:00.111956
time_t - 7
num_t - 2022-08-18 17:56:01.119850
time_t - 8
num_t - 2022-08-18 17:56:02.123830
time_t - 9
num_t - 2022-08-18 17:56:03.128410
time_t - 10
반응형
'Python공부' 카테고리의 다른 글
Python - map(), filter(), reduce(), lambda 사용법 (0) | 2022.08.22 |
---|---|
Python = Jupyter NoteBook에서 SQL사용하기,pandas ,with (0) | 2022.08.19 |
Python - 날짜, 시간 (0) | 2022.08.17 |
Python - 파일 / 이미지 관련 함수 (0) | 2022.08.17 |
Python - List, Dictionary, Tuple의 차이점 (0) | 2022.08.17 |