파이썬에서 별도의 스레드(thread)로 함수 무한 반복 실행 - Timer

파이썬에서 일정 주기로 특정 작업을 별도의 스레드로 무한 반복 실행할 수 있습니다. threading 모듈의 Timer 객체를 사용하며, 기본적인 내용은 이전 포스트를 참고하시기 바랍니다. 아래의 링크입니다.

파이썬에서 일정 시간 이후 특정 함수 호출 - Timer

여기서는 20초마다 "hello world" 문자열을 무한히 반복해서 출력하는 예시를 보겠습니다.

import threading

def repeat():
    print("hello world")    
    timer = threading.Timer(20, repeat)
    timer.start()

repeat()

print("timer")

여기서는 repeat() 함수 내부에서 자기 자신을 Timer 객체의 인자(argument)로 사용하고 있습니다. 처음에 repeat() 함수를 호출하면, 우선 "hello world" 문자열을 출력하고 Timer 객체를 생성하여 자기 자신을 20초후에 다시 호출하도록 합니다. 이렇게 다시 호출된 repeat() 함수에서 또 다시 자기 자신을 20초후에 다시 호출하도록 함으로써 무한 반복이 이루어집니다.

따라서, 위의 코드를 실행하면 우선 "hello world"가 출력되고 곧바로 다음에 "timer"가 출력된 후 이후 20초 간격으로 "hello world"가 무한 반복으로 출력됩니다.

hello world
timer
hello world
hello world
...


@joviansummer의 스팀 프로젝트

스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다.
(https://steemitwallet.com/~witnesses)

jswit 증인 노드 프로젝트를 시작합니다.

jsup 업보팅(upvoting) 서비스 소개

jsup 수혜자 지정 기능 추가

jsup 서비스에 큐레이션 보상 분배 기능이 추가되었습니다.

jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기

STEEM.NFT - 디지털 아트 보존 프로젝트


Posted through the AVLE Dapp (https://avle.io)

Sort:  

Thank you, friend!
I'm @steem.history, who is steem witness.
Thank you for witnessvoting for me.
image.png
please click it!
image.png
(Go to https://steemit.com/~witnesses and type fbslo at the bottom of the page)

The weight is reduced because of the lack of Voting Power. If you vote for me as a witness, you can get my little vote.

Upvoted! Thank you for supporting witness @jswit.

Coin Marketplace

STEEM 0.20
TRX 0.24
JST 0.037
BTC 96184.84
ETH 3331.18
USDT 1.00
SBD 3.21