본문 바로가기
Programming/Python

python - Thread 사용

by bbolmin 2014. 3. 1.


Threading 모듈




(1). 아래와 같이 threading 모듈로 thread동작 함수를 등록해서 간단하게 사용할 수 있다.




import threading

def example(argv_0):
    print argv_0


th = threading.Thread(target=example, args=('hi',))
th.start()
th.join()





(2). Thread객체를 상속해서 run메소드를 재정의 한다.




import time, threading


class MyExample(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)
        self.__suspend = False
        self.__exit = False

    def run(self):
        while True:
            ### Suspend ###
            while self.__suspend:
                time.sleep(0.5)
                
            ### Process ###
            print 'Thread process !!!'

            ### Exit ###
            if self.__exit:
                break
            
    def mySuspend(self):
        self.__suspend = True
        
    def myResume(self):
        self.__suspend = False
        
    def myExit(self):
        self.__exit = True


lock = threading.Lock()

th = MyExample()
th.start()
time.sleep(1)

### suspend 
th.mySuspend()
with lock:
    print 'Suspend Thread ....'
time.sleep(1)

### resume
th.myResume()
with lock:
    print 'Resume Thread ....'
time.sleep(1)

### exit
th.myExit()



- python Thread에 Suspend, Resume, Exit이 따로 없기 때문에 멤버변수로 제어하는 방식으로 추가해 놓았다.







'Programming > Python' 카테고리의 다른 글

python - decorator  (0) 2014.03.25
python - 인코딩 관련  (0) 2014.03.02
python - dumpcode  (0) 2014.02.26
python - ROL, ROR  (2) 2013.12.14
RC4 알고리즘 - python  (1) 2013.12.14