스레드란 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다.
일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 스레드를 동시에 실행할 수 있다. 이러한 실행 방식을 멀티스레드라고 한다.
코드 작성방법을 살펴보자
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 |
댓글