0

JavaのConcurrentHashMapで同時実行レベルを設定する方法を教えてください? レベルが高すぎたり低すぎたりすると、どのような影響がありますか? 内部的にはどのように機能しますか?

4

1 に答える 1

2

ConcurrentHashMap コンストラクター

 public ConcurrentHashMap(int initialCapacity,
                             float loadFactor, int concurrencyLevel) {

必要に応じて同時実行レベルを適切に定義できます。2番目の質問について。ConncurrentHashMap (java 1.6) からの javadoc コメントは次のとおりです。

 * Ideally, you should choose a value to accommodate as many
 * threads as will ever concurrently modify the table. Using a
 * significantly higher value than you need can waste space and time,
 * and a significantly lower value can lead to thread contention.

したがって、理想的には、マップがどのくらい大きくなるか、マップにアクセスするスレッドの数などがわからない場合は、並行性のデフォルト値 (現在は 16) を使用することをお勧めします。

http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/concurrent/ConcurrentHashMap.java

その助けを願っています!

于 2013-07-03T04:31:07.753 に答える