私は RPC フレームワークに取り組んでいます。マルチ io_service 設計を使用してio_objects
、IO (フロントエンド) を実行するスレッドを RPC 作業 (バックエンド) を実行するスレッドから分離したいと考えています。
フロントエンドはシングル スレッドで、バックエンドにはスレッド プールが必要です。条件変数を使用してフロントエンドとバックエンドを同期させる設計を検討していました。ただし、混同していないようです。つまり、条件変数のboost::thread
サポートは利用できないようです。この件については、ここで質問があります。 boost::asio
async_wait
2 つのio_serviceio_service::post()
オブジェクトを同期するために使用される可能性があることに気付きました。以下に図を添付しました。メカニズムを正しく理解しているかどうかを知りたいだけですpost
。これは賢明な実装です。