2017-11-22 15 views
0

ハッシュマップの同期方法やコンカレントコレクションの使用方法に関する多くの例を見つけました。しかし、私は、それは、ネストされたマップであるので、チューンナップこれに類似した構造の同期をするための最良の方法は何か疑問に思って:ネストされたハッシュマップの同期をチューニングする最良の方法

Map<String, HashMap<String, HashMap<String, String>> map = new HashMap<String, HashMap<String, HashMap<String, String>>>(); 

注:セカンドレベル、および第3レベルのマップはほとんど更新されます。コメントのこの質問についてのあなたの明確化に基づいて予め

+0

これはあまりにも曖昧です。どのようにこの構造を使用していますか?あなたはそれについて何を "調整"したいですか? – shmosel

+0

あなたが何をしたいか分かりません。アクセスパターンが何であるかは明らかではありません。質問が何であるかは全く分かりません。 –

+0

まあ、Collections.SynchronizedMap()でマップ全体をラップするか、すべてのマップインスタンスにConcurrentHashMapを使うべきか、それとも何か他のものを使うべきですか? – lazar90

答えて

0

ありがとう:

1)ネストされたマップは、スレッドセーフ

2ではありません)あなたは、任意の挿入を行う必要がある場合/削除/更新操作を行うには、スレッドセーフな方法で行う必要があります。

3)複数のスレッドが同時に処理できるネストレイヤーごとにconcurrentHashMapが必要です。

単一マップについて上記の理解に基づいてコードを作成し、それをさらにレイヤーに拡張しようとする必要があります。

別の注記では、このデータ構造はどのように使用されるのでしょうか?あなたはおそらくそれを単純化する方法を見つけることを検討すべきでしょう。

関連する問題