본문 바로가기
프로그래밍/파이썬

파이썬 스레드 (Thread)

by 의탕 2020. 12. 17.

 

스레드란 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다.

 

일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 스레드를 동시에 실행할 수 있다. 이러한 실행 방식을 멀티스레드라고 한다.

 

코드 작성방법을 살펴보자

import threading #스레드 임포트
import time

def f1(num):
    for i in range(1, 21):
        print('th'+num+':', i)
        time.sleep(0.3) #실행중인 현재 쓰레드를 초만큼 잠재움, 딜레이  #인자값에 따라서 제어가능

def f2():
    s = 'abcdefghijklmnopqrstuvwxyz'
    for i in s:
        print('th4 : ', i)
        time.sleep(0.3)

def main():
    # 스레드를 생성하는 코드 , target : 스레드가 실행할 함수
    # args : target 함수에 파라메터 전달, 없으면 생략 가능
    th1 = threading.Thread(target=f1, args=('1'))
    th2 = threading.Thread(target=f1, args=('2'))
    th3 = threading.Thread(target=f1, args=('3'))
    th4 = threading.Thread(target=f2, args=())

    th1.start()	#스레드 시작
    th2.start()
    th3.start()
    th4.start()

    for i in range(100, 140, 2):  #메인 쓰레드
        print('main : ', i)
        time.sleep(0.3)

main()

<실행결과> : 위쪽만 잘랐습니다

이런 식으로 함수의 동작이 순차적으로 실행되는 것이 아닌, 병렬적으로 실행되고 있다. 어느 하나의 함수도 다른 함수에게 뒤처지지 않기 위해 열심히 일을 한다.

'프로그래밍 > 파이썬' 카테고리의 다른 글

계산기 프로그램 TKinter  (0) 2020.12.17
GUI 멀티 채팅 프로그램 (TKinter, Thread, Socket)  (1) 2020.12.17
TKinter 기본 (파이썬 GUI)  (0) 2020.12.17
파이썬 소켓(TCP)  (0) 2020.12.15
제어문 - IF  (0) 2020.11.05

댓글