多线程编译需要链接lpthread库
IO_service在多线程下的使用(C++asio网络库相关)
g++ -02是优化方式

printer p 注册事件
如果调换thread t和printer p注册事件顺序可能会出现什么都没输出,看操作系统心情。
主线程run也不起作用是因为线程是同时执行的,子线程中会改变io的状态表示IO已经无事件了,所以即使后面又注册了新事件主线程也不会run因为状态已经改变了
IO_service在多线程下的使用(C++asio网络库相关)
解决方法可以先注册事件执行printer p再run,也可以通过判断io是否是stop再重新开启但不是最正确做法,推荐用前一种
IO_service在多线程下的使用(C++asio网络库相关)

BOOST strand_.wrap()本身是mutex实现的用于保证多线程下事件回调顺序,同时新回调也要用strand_.wrap包裹起来
IO_service在多线程下的使用(C++asio网络库相关)
IO_service在多线程下的使用(C++asio网络库相关)
IO_service在多线程下的使用(C++asio网络库相关)

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-02-26
  • 2022-12-23
  • 2022-03-04
  • 2021-07-21
  • 2021-08-11
猜你喜欢
  • 2021-06-19
  • 2021-11-14
  • 2021-05-21
  • 2022-12-23
  • 2021-05-16
  • 2022-12-23
  • 2021-04-27
相关资源
相似解决方案