본문 바로가기
Python

Python Thread

by usang0810 2019. 8. 9.

python에서 쓰레드를 사용해본적이 없어서 예제를 만들어서 해봤습니다.

각 쓰레드마다 출력과 sleep을 반복하여 쓰레드들이 잘 동작하는지 테스트하는 예제입니다.

import threading
import time
import random

class Thread_controll(threading.Thread):
    def __init__(self, name, finish_n):
        threading.Thread.__init__(self)
        self.name = name 
        self.finish_n = finish_n

    def run(self):
        for i in range(self.finish_n):
            print(self.name,' :', i)
            time.sleep(random.random())

def rand(str_name, finish):
    for i in range(finish):
        print(str_name,' :', i)
        time.sleep(random.random())

second_t = Thread_controll('second_thread', 15)
second_t.daemon = True
third_t = Thread_controll('third_thread', 12)
third_t.daemon = True

second_t.start()
third_t.start()
rand('main_thread', 5)
print('FINISH!!!')

 

실행결과

데몬쓰레드로 지정해두어서 메인쓰레드가 작업이 종료되었을 때 서브쓰레드도 종료되도록 설정했습니다.

 

참고문헌

http://pythonstudy.xyz/python/article/24-%EC%93%B0%EB%A0%88%EB%93%9C-Thread

 

예제로 배우는 파이썬 프로그래밍 - 쓰레드 (Thread)

쓰레드 (Thread) 파이썬 프로그램은 기본적으로 하나의 쓰레드(Single Thread)에서 실행된다. 즉, 하나의 메인 쓰레드가 파이썬 코드를 순차적으로 실행한다. 코드를 병렬로 실행하기 위해서는 별도의 쓰레드(Subthread)를 생성해야 하는데, 파이썬에서 쓰레드를 생성하기 위해서는 threading 모듈 (High 레벨) 혹은 thread 모듈 (Low 레벨)을 사용할 수 있다. 일반적으로 쓰레드 처리를 위해서는 thread 모듈 위에서 구현된

pythonstudy.xyz

'Python' 카테고리의 다른 글

[androguard]code_item 추출하기  (0) 2019.05.14