python에서 특정 함수를 일정 주기마다 실행하고 싶으면? threading.Timer를 사용해보자
기본 사용방법은 아래와 같다.
import threading
class AsyncTask:
def __init__(self):
pass
def TaskA(self):
print 'Process A'
threading.Timer(1,self.TaskA).start()
def TaskB(self):
print 'Process B'
threading.Timer(3, self.TaskB).start()
def main():
print 'Async Function'
at = AsyncTask()
at.TaskA()
at.TaskB()
if __name__ == '__main__':
main()
수행 결과, TaskA는 1초마다, TaskB는 3초마다 수행되고 있다.
Async Function
Process A
Process B
Process A
Process A
Process B
Process A
Process A
Process A
Process B
핵심은 아래 함수이다.
threading.Timer(1,self.TaskA).start()
함수의 의미는 1초 후에 TaskA를 start하라는 의미이다.
TaskA 함수안에서 threading.Timer를 사용한다면 TaskA는 정해진 시간마다 주기적으로 수행되는 함수가 될 것이다.
가장 중요한 점은, TaskA를 최초의 한번은 수행햐주어야 한다는 점이다.
def main():
print 'Async Function'
at = AsyncTask()
at.TaskA()
at.TaskB()
'Study > Python' 카테고리의 다른 글
python hex값을 hex string으로 변환하기, hexlify(), unhexlify() (0) | 2019.05.07 |
---|---|
python Queue 사용방법 (0) | 2017.01.25 |