파이썬(Python) Thread - 지정 시간 반복 실행
지난 시간에 이어서 오늘은 파이썬 쓰레드를 활용해서 반복적으로 실행하는 방법을 설명하겠습니다.
쓰레드를 활용해서 지정된 시간 간격으로 주기적으로 특정 작업 등을 실행해야할 코드를 구현할 때
Thread.Timer를 활용하면 쉽게 구현하실 수 있습니다.
주로 주기적으로 웹 데이터 크롤링, 주식 자동 트레이딩(봇), DB 통계 작업 등 에서 사용하며, 활용
가능성은 매우 다양하다고 생각합니다.
그러면 문서 하단에서 간단하게 예제를 작성해보겠습니다.
Python 관련 포스팅 : Python 관련
Python 관련 포스팅 : Python 관련
파이썬(Python) Thread - 구조
보통 Thread는 아래와 아키텍처로 나타낼 수 있으며, 관련 예제는 하단에서 설명합니다.
Thread 구조 - 출처
파이썬(Python) Thread Timer 반복 - 예제 코드
파이썬 Thread Timer(타이머)를 활용해서 구현한 예제 소스 입니다.
Threading-time.py
12345678910111213 import timeimport threading def thread_run(): print('=====',time.ctime(),'=====') for i in range(1,50001): #개발 하고자 하는 코드 print('Thread running - ', i) threading.Timer(2.5, thread_run).start() thread_run()#threading.Timer(2, thread_run).start() : 메인에서 실행하면 1회 실행 cs
- 4번 라인 : 반복 실행 할 thread_run 함수 선언
- 7번 라인 : 주석 처리 된 부분에 구현하고자 하는 소스코드 작성- 10번 라인 : 핵심라인 - 2.5초 간격으로 정의 된 함수를 반복 실행(재귀실행)- 12번 라인 : 최초 함수 실행
- 13번 라인 : Timer를 외부에서 호출하면 2.5 후에 한 번만 실행
1 2 3 4 5 6 7 8 9 10 11 12 13 | import time import threading def thread_run(): print('=====',time.ctime(),'=====') for i in range(1,50001): #개발 하고자 하는 코드 print('Thread running - ', i) threading.Timer(2.5, thread_run).start() thread_run() #threading.Timer(2, thread_run).start() : 메인에서 실행하면 1회 실행 | cs |
- 7번 라인 : 주석 처리 된 부분에 구현하고자 하는 소스코드 작성
- 13번 라인 : Timer를 외부에서 호출하면 2.5 후에 한 번만 실행
Python Thread Timer 의 추가적인 상세 설명은 이 곳을 참고해 주세요.
Python Thread Timer 의 추가적인 상세 설명은 이 곳을 참고해 주세요.
파이썬(Python) Thread Timer 반복 - 예제 실행 화면
아래 이미지로 실제 실행 화면을 확인하실 수 있습니다.
실제 실행 화면
마무리
이번 포스팅에서는 파이썬 쓰레드 Timer 작업을 알아보았습니다.
요즘 파이썬을 활용해서 여러 프로젝트에 참여하면서 실질적으로 체감하는 큰 장점은 타 언어보다
빠른 아웃풋을 통한 높은 생산성을 체감할 수 있다는 점 입니다.
다음 시간에는 파이썬 동시성 및 멀티 프로세싱(Multi Processing)에 대해서 포스팅 하겠습니다.
소스코드 다운로드 : python_thread(4).zip
'언어 > Python' 카테고리의 다른 글
파이썬(Python) - multiprocessing(멀티프로세싱) 설명 및 예제(2) - Process (4) | 2018.06.12 |
---|---|
파이썬(Python) - multiprocessing(멀티프로세싱) 설명 및 예제(1) - Pool (4) | 2018.05.31 |
파이썬(Python) - Thread(쓰레드) 설명 및 예제 소스 코드(3) - 데이터 통신 (4) | 2018.05.12 |
파이썬(Python) - Thread(쓰레드) 설명 및 예제 소스 코드(2) - 동기화 (0) | 2018.05.09 |
파이썬(Python) - Thread(쓰레드) 설명 및 예제 소스 코드(1) - 기초 (1) | 2018.05.06 |