Notice
Recent Posts
Recent Comments
준호씨의 블로그
perl - millisecond로 sleep주는 방법 본문
반응형
perl에서 기본 제공되는 함수중 sleep은 초단위로 잠깐 동안 동작을 멈추는 함수입니다.
예제를 봅시다.
#!/usr/bin/perl
use strict;
use warnings FATAL => 'all';
use POSIX 'strftime';
sub print_now {
my $date = strftime '%Y/%m/%d %H:%M:%S', localtime;
print $date."\n";
}
print_now();
sleep(1);
print_now();
sleep(1);
print_now();
sleep(1);
결과는 현재 시각을 출력하고 1초 쉬는 것을 3번 반복합니다.
2021/01/17 21:45:36
2021/01/17 21:45:37
2021/01/17 21:45:38
그런데 만약 밀리초만큼만 sleep을 걸고 싶은 경우가 있습니다.
sleep(1) 대신 sleep(0.5)를 주면 어떻게 될까요?
2021/01/17 21:46:38
2021/01/17 21:46:38
2021/01/17 21:46:38
소수점은 무시되고 sleep(0)이 되어버립니다.
만약 밀리초만큼만 sleep을 걸려면 어떻게 해야 될까요?
Time::HiRes 모듈을 사용해야 합니다.
#!/usr/bin/perl
use strict;
use warnings FATAL => 'all';
use Time::HiRes;
use POSIX 'strftime';
sub print_now {
my $date = strftime '%Y/%m/%d %H:%M:%S', localtime;
my $t = Time::HiRes::time;
$date .= sprintf ".%03d", ($t-int($t))*1000;
print $date."\n";
}
print_now();
Time::HiRes::sleep(0.5);
print_now();
Time::HiRes::sleep(0.5);
print_now();
Time::HiRes::sleep(0.5);
결과는 다음과 같습니다.
2021/01/17 21:57:38.897
2021/01/17 21:57:39.400
2021/01/17 21:57:39.904
반응형
'개발이야기' 카테고리의 다른 글
정원사들 출석부. 로그인 기능 추가 (0) | 2021.01.24 |
---|---|
정원사들 시즌6 시작. 출석부 만들기 (0) | 2021.01.21 |
Jackson - kafka listener StringJsonMessageConverter에서 enum에 없는 값이 들어 올 때 기본값 지정 방법. @JsonEnumDefaultValue (0) | 2021.01.04 |
FreeMarker - null 데이터 오류 안나도록 하기. 포멧팅한 date는? (0) | 2021.01.03 |
Java - HashMap 초깃값을 갖도록 초기화 하는 방법 (0) | 2020.12.30 |
Comments