ある種のデータベースとして機能する std::unordered_map のインスタンスがあります。(基本的には通常のハッシュマップです)。
ネットワークから長い文字列を取得する 4 つのスレッドがあり (c++11 std::threads を使用しています)、それらの各スレッド内で、受け取った文字列をトークン化します。トークン化自体も、新しい Microsoft AMP ライブラリを使用して並列化されます (したがって、トークン化のプロセスは GPU スレッドによって実行されます)。
GPU スレッドが文字列のトークン化を完了する (そしてプロセスを繰り返す) ときに、4 つの「メイン」スレッドのそれぞれがトークンをキーとしてハッシュマップに追加するようにします。
各スレッドからデータベースに新しいキーを安全に追加できるように、これらすべてを同期するにはどうすればよいでしょうか?