Asio без повышения безопасности многопоточности

#c #asio

Вопрос:

Я хочу использовать asio без повышения. В учебнике Asio есть такой пример https://think-async.com/Asio/asio-1.18.2/doc/asio/tutorial/tuttimer5/src.html

 class printer
{
public:
  printer(asio::io_contextamp; io)
    : strand_(asio::make_strand(io)),
      timer1_(io, asio::chrono::seconds(1)),
      timer2_(io, asio::chrono::seconds(1)),
      count_(0)
  {
    timer1_.async_wait(asio::bind_executor(strand_,
          boost::bind(amp;printer::print1, this)));

    timer2_.async_wait(asio::bind_executor(strand_,
          boost::bind(amp;printer::print2, this)));
  }
private:
  asio::strand<asio::io_context::executor_type> strand_;
  asio::steady_timer timer1_;
  asio::steady_timer timer2_;
  int count_;
};

 

Я пытаюсь сделать это без наддува, но я не знаю, как заменить asio::strand<asio::io_context::executor_type> strand_;
Я не знаю, как синхронизировать обработчики в многопоточных программах. Не могли бы вы посоветовать некоторые сайты об asio без наддува?