我正在研究 RPC 框架,我想使用多 io_service 设计将io_objects
执行 IO(前端)的线程与执行 RPC 工作的线程(后端)分离。
前端应该是单线程的,后端应该有一个线程池。我正在考虑使用条件变量使前端和后端同步的设计。但是,似乎boost::thread
并boost::asio
没有混合——即,似乎条件变量async_wait
支持不可用。我在这里有一个关于这个问题的问题。
我突然想到io_service::post()
可以用来同步两个 io_service 对象。我在下面附上了一张图表,我只想知道我post
是否正确理解了机制,并且天气这是一个明智的实现。