최대 1 분 소요

우리는 sleep 함수에 대해 자세하게 아는가 ?

os 공부를 하다 sleep 함수에 대해 새롭게 알게 된 사실이 있다. 간혹 가다 sleep(0) 이런식으로 짜여진 코드를 본다.

나는 저게 도대체 무슨 의미가 있을까 ? 생각을 했지만 별로 신경 쓰지 않고 넘어갔다. 하지만 OS 관점으로 본다면 엄청난 의미가 있다.

process를 실행 상태에서 준비상태로 변경함과 동시에 Ready Queue에 제일 뒤쪽으로 이동 시킨다는 관점에 있다.

이는 내가 sleep(0)을 했다고 하더라도 결코 0초가 아니라 +alpha 의 시간이 더 흐른다는 것이다.

+alpha 란 대기열에 재진입 해서 기다리는 시간이다.

역시 OS를 공부해야 한다.

import datetime # 현재 시간 출력용
import time     # sleep 함수 사용

# 1. 초 단위 테스트
print('-' * 30)
now = datetime.datetime.now()
print(now.strftime('%H:%M:%S')) # 현재 시간 출력

time.sleep(5) # 5 초 딜레이

now = datetime.datetime.now()
print(now.strftime('%H:%M:%S'))

time.sleep(10) # 10 초 딜레이

print(datetime.datetime.now().strftime('%H:%M:%S'))


# 2. 밀리초 테스트
print('-' * 30)
print(datetime.datetime.now().strftime('%H:%M:%S.%f')[:-3])

time.sleep(0.5) # 0.5 초 딜레이

print(datetime.datetime.now().strftime('%H:%M:%S.%f')[:-3]) # 밀리초 3자리까지만 출력

time.sleep(0.06) # 0.06 초 딜레이

now = datetime.datetime.now()
print(now.strftime('%H:%M:%S.%f')[:-3])

댓글남기기