본문 바로가기

언어/Python

[ Python ] sleep() 딜레이(delay) 하기

반응형

Python에서 코드 실행을 지연시키는 방법은 여러 가지가 있습니다. 주로 time 모듈의 sleep 함수를 사용하여 간단하게 딜레이를 구현할 수 있습니다. 아래는 Python에서 딜레이를 구현하는 다양한 방법입니다.

1. time.sleep() 사용

가장 기본적이고 간단한 방법으로, 특정 시간만큼 코드를 일시 중지시킬 수 있습니다.

import time

# 5초 동안 딜레이
time.sleep(5)
  • 위 코드는 5초 동안 프로그램의 실행을 멈춥니다.

2. threading 모듈과 함께 사용

멀티스레딩 환경에서 특정 스레드만 딜레이 시키고 싶을 때 time.sleep()을 사용할 수 있습니다. 이 방법은 다른 스레드가 중단 없이 실행될 수 있게 합니다.

import time
import threading

def print_message():
    print("3초 후에 메시지가 출력됩니다.")
    time.sleep(3)
    print("메시지 출력!")

# 스레드 생성
thread = threading.Thread(target=print_message)
thread.start()

3. asyncio를 사용한 비동기 딜레이

비동기 프로그램에서 딜레이를 사용하는 경우, asyncio 모듈의 await asyncio.sleep()을 사용합니다.

import asyncio

async def delayed_print():
    print("2초 후 출력됩니다.")
    await asyncio.sleep(2)
    print("출력 완료!")

# 비동기 실행
asyncio.run(delayed_print())
  • 이 방법은 비동기 함수 안에서 딜레이를 처리하며, 다른 비동기 작업들이 실행될 수 있도록 합니다.

4. 루프를 이용한 딜레이 (비추천)

루프를 돌려 일정 시간을 기다리는 방법도 있지만, CPU 자원을 많이 소모하므로 비효율적입니다.

import time

start_time = time.time()

# 3초 동안 대기
while time.time() - start_time < 3:
    pass

print("3초가 지났습니다.")
  • 이 방법은 CPU를 계속 사용하며 딜레이를 처리하기 때문에 권장되지 않습니다.

요약

  • 가장 많이 사용되는 방법은 time.sleep()입니다.
  • 비동기 프로그램에서는 asyncio.sleep()을 사용합니다.
  • 멀티스레드에서는 threading과 함께 time.sleep()을 사용하여 특정 스레드만 딜레이할 수 있습니다.

필요에 맞는 딜레이 방법을 선택하면 됩니다.

반응형