안녕하세요 여러분, 파이썬을 잘 배우고 계시길 바랍니다. 이 튜토리얼에서는 파이썬의 시간 지연 메서드에 대해 배워보겠습니다. 파이썬 sleep 함수는 이미 이전에 다뤄진 파이썬 시간 모듈에 속합니다
파이썬 시간 sleep
파이썬 시간 sleep 함수는 프로그램의 실행을 지연시키는 데 사용됩니다. 우리는 파이썬 sleep 함수를 사용하여 프로그램의 실행을 지정된 시간(초) 동안 중지시킬 수 있습니다. 주의할 점은 파이썬 시간 sleep 함수가 실제로 현재 스레드의 실행만을 중지시킨다는 것입니다. 전체 프로그램을 중지시키지는 않습니다.
파이썬 시간 sleep() 함수 구문
sleep()은 파이썬 시간 모듈의 메서드입니다. 따라서 먼저 시간 모듈을 가져와야 이 메서드를 사용할 수 있습니다. 파이썬 sleep() 함수의 사용 방법은 다음과 같습니다: 여기서 sleep() 메서드의 인수 t는 초 단위입니다. 즉, 문장 time.sleep(t)이 실행되면 다음 코드 라인은 t초 후에 실행됩니다. 다음 예제를 참조하세요:
# 시간 모듈 가져오기
import time
print("Before the sleep statement")
time.sleep(5)
print("After the sleep statement")
위의 코드를 실행하면 두 번째 프린트가 5초 후에 실행됩니다. 따라서 코드에서 필요한 만큼 지연을 발생시킬 수 있습니다. 인수는 부동 소수점 값으로도 지정할 수 있어서 더 정밀한 지연을 설정할 수 있습니다. 예를 들어 다음과 같이 100밀리초(0.1초) 동안 지연을 발생시키려면:
import time
time.sleep(0.100)
파이썬 sleep 예제
다음은 파이썬의 time sleep 함수의 예제입니다.
import time
startTime = time.time()
for i in range(0,5):
print(i)
# 1초 동안 지연 발생
time.sleep(1)
endTime = time.time()
elapsedTime = endTime - startTime
print("Elapsed Time = %s" % elapsedTime)
이것은 다음을 출력합니다:
0
1
2
3
4
Elapsed Time = 5.059988975524902
각 for 루프에서 실행이 1초 동안 중지되기 때문에 경과된 시간이 5초보다 큽니다. 추가 시간은 프로그램의 실행 시간, 운영 체제 스레드 스케줄링 등 때문입니다.
파이썬 sleep()의 다른 지연 시간
가끔은 서로 다른 시간동안 지연이 필요할 수 있습니다. 다음과 같이 수행할 수 있습니다:
import time
for i in [ .5, .1, 1, 2]:
print("Waiting for %s" % i , end='')
print(" seconds")
time.sleep(i)
이것은 다음을 출력합니다:
Waiting for 0.5 seconds
Waiting for 0.1 seconds
Waiting for 1 seconds
Waiting for 2 seconds
sleep()를 사용한 극적인 출력
다음과 같이 메시지를 드라마틱하게 출력해야 할 수도 있습니다:
# 시간 모듈 가져오기
import time
message = "Hi!!! I am trying to create suspense"
for i in message:
# 메시지의 각 문자를 출력
print(i)
time.sleep(0.3)
위의 코드를 실행하면, 메시지의 각 문자를 출력한 후 시간이 조금 소요되는 것을 볼 수 있습니다. 이는 드라마틱하게 보입니다.
파이썬 스레드 슬립
파이썬의 time.sleep() 함수는 다중 스레드 프로그래밍에서 현재 스레드의 실행을 일시적으로 멈추는 데 매우 중요한 메서드입니다. 아래는 이를 보여주는 간단한 예제입니다.
import time
from threading import Thread
class Worker(Thread):
def run(self):
for x in range(0, 11):
print(x)
time.sleep(1)
class Waiter(Thread):
def run(self):
for x in range(100, 103):
print(x)
time.sleep(5)
print("Staring Worker Thread")
Worker().start()
print("Starting Waiter Thread")
Waiter().start()
print("Done")
아래 이미지는 위의 파이썬 스레드 슬립 예제에서 생성된 출력을 보여줍니다. 출력에서 분명히 볼 수 있듯이, 파이썬의 time.sleep() 함수로 전체 프로그램이 아닌 스레드만 실행이 중지됩니다. 이것이 파이썬의 time.sleep() 함수 또는 sleep 함수에 관한 전부입니다. 참고: 스택 오버플로우 게시물, API 문서
Source:
https://www.digitalocean.com/community/tutorials/python-time-sleep