設計と C++ の実装についてアドバイスが必要です (私は Java の専門家で、C++ は初めてです)。
プロセスのリストがあります。1 つのスレッドがプロセスをリストに追加/削除し、2 つ目のスレッドが 10 ミリ秒に 1 回実行され、タイムアウトしたすべてのプロセスを収集 (およびリストから削除) します。各プロセスには、リストに追加されたときの作成タイムスタンプがあります。3 秒経過してもプロセスがまだリストにある場合 (最初のスレッドによって削除されていない場合)、クリーナー プロセスによってリストから削除されます。
これは、オーバーヘッドを低く抑える必要があります。
したがって、add、remove、clean の 3 つのメソッドを持つ processListContainer があります。
add/removeById と clean の間で同期する必要があります。これは、クリーニング時に新しいリストを作成し、複数のリストを処理するなどの巧妙な考え方によって実行できます。
リストのサイズは約 100K で、1 秒で数千が追加されます