Python공부

Python - Thread

SoSweetStrawberry 2022. 8. 19. 01:50
반응형

#쓰레드
*한 프로세스 안에서 동시에 실행되는 코드(로직,함수)

*가상의 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
반응형