複数のスレッドを同時にアクセスしたいHashMapにデータが格納されているため、アイテムに対して行われた作業が分割されます。マップの一部のみを繰り返します。
(例えばリスト付き)通常、私はちょうど、各スレッドにして開始するための指標を与えるだろうと簡単にこのような作業を分割することができます:私ので、もちろん
for(int i = startIndex; i < startIndex+batchSize && i < list.size(); i++)
{
Item a = list.get(i);
// do stuff with the Item
}
のHashMapでこのdoesntの仕事インデックスを介してアクセスすることはできません。
地図の一部だけを簡単に反復する方法はありますか?このケースでは別のデータ構造を使用するべきですか?
私はSortedMapについて読んでいますが、あまりにもオーバーヘッドがあります(項目をソートする必要はありません)。私は多くのデータを持っており、パフォーマンスが重要です。
どのようなヒントも高く評価されます。
地図の分割方法を教えてください。 – skaffman
よくわからない質問があります。 :)私はマップが私が持っているスレッドの数(例えば8)の多くの部分に分割したいと思います。可能であれば、パーティショニングはコストのかかる操作であってはなりません。 – magnattic
*多くのデータ* ... –