N スレッドで実行されている boost::asio ベースのスレッド プールがあります。主に IO タスク (DB データの保存/検索) に使用されます。また、自己診断タイマー ジョブを起動して、プールが「ビジー」であるかどうかを確認します (「追加された時間」と「呼び出されたハンドラー」の間のミリ秒の差分を計算します)。負荷が非常に低く、プールがそれほど多くのスレッドを必要としない場合)。負荷が高い場合 (診断タスクによって決定)、新しいスレッドが追加されます。
_workers.emplace_back(srv::unique_ptr<srv::thread>(new srv::thread([this]
{
_service.run();
})));
(srv 名前空間は、boost と std をすばやく切り替えるために使用されます)。これに対する解決策はありますか?