728x90
반응형
타이머 (Timers)
긴 시간 실행되는 I/O 작업에는 완료 기한이 주어지는 경우가 많다. 이러한 기한은 절대 시간으로 표현될 수 있지만, 현재 시간에서 비례하여 계산되는 경우가 많다.
간단한 예로, 타이머에서 상대 시간을 사용하여 동기식 대기 작업을 수행하려면 다음과 같이 작성한다:
io_context i; ... deadline_timer t(i); t.expires_from_now(boost::posix_time::seconds(5)); t.wait();
더 일반적으로 프로그램은 타이머에서 비동기식 대기 작업을 수행한다:
void handler(boost::system::error_code ec) { ... } ... io_context i; ... deadline_timer t(i); t.expires_from_now(boost::posix_time::milliseconds(400)); t.async_wait(handler); ... i.run();
타이머와 관련된 기한은 상대 시간으로도 얻을 수 있고:
boost::posix_time::time_duration time_until_expiry = t.expires_from_now();
또는 타이머의 조합을 허용하는 절대 시간으로도 얻을 수 있다:
deadline_timer t2(i); t2.expires_at(t.expires_at() + boost::posix_time::seconds(30));
더 보기
basic_deadline_timer, deadline_timer, timer tutorials.
728x90
반응형
'Boost C++ Libraries > Boost.Asio' 카테고리의 다른 글
Boost.Asio 개요 - 시그널 핸들링 (0) | 2020.12.11 |
---|---|
Boost.Asio 개요 - 직렬 포트 (0) | 2020.12.11 |
Boost.Asio 개요 - 네트워킹 - BSD 소켓 API 및 Boost.Asio (0) | 2020.12.11 |
Boost.Asio 개요 - 네트워킹 - 소켓 Iostreams (0) | 2020.12.11 |
Boost.Asio 개요 - 네트워킹 - 기타 프로토콜 지원 (0) | 2020.12.10 |