똑똑한 개발/C++
[boost] asio #1
성댕쓰
2022. 5. 1. 09:55
튜토리얼 따라 하며 boost-asio library 사용법 알아보자.
튜토리얼 링크 : Timer.1 - Using a timer synchronously - 1.79.0 (boost.org)
#include <iostream>
#include <boost/asio.hpp>
int main()
{
boost::asio::io_context io;
boost::asio::steady_timer t(io, std::chrono::seconds(5));
t.wait();
std::cout << "Hello, world!" << std::endl;
return 0;
}
asio 사용하려면 적어도 하나의 io context가 있어야 한다(ex. io_context || thread_pool)
io 기능을 제공하는 클래스는 하나의 executor를 첫 번째 파람으로 받아 생성해야 한다.
boost::asio::steady_timer t(io, boost::asio::chrono::seconds(5));
t.wait()는 5초 지나고 리턴된다. 타이머는 항상 expired or not expired 상태를 갖는다. expired 된 타이머의 wait을 콜하면 바로 리턴된다.