/ / Come impostare il livello di concorrenza in concurrentHashMap in java-java, concurrency, concurrenthashmap

Come impostare il livello di concorrenza in concurrentHashMap in java-java, concurrency, concurrenthashmap

Per favore dimmi come impostare il livello di concorrenza in ConcurrentHashMap in java? Che impatto ha se il livello è impostato troppo alto o troppo basso? Come funziona internamente?

risposte:

2 per risposta № 1

Costruttore ConcurrentHashMap

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

Puoi benissimo definire il livello di concorrenza come desiderato da te. Per quanto riguarda la tua seconda domanda. Ecco il commento javadoc di ConncurrentHashMap (java 1.6)

 * 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.

Quindi, idealmente, se non sai cose come la mappa potrebbe diventare grande o il numero di thread che accederà alla mappa, meglio utilizzare i valori predefiniti di concorrenza (che è attualmente 16).

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

Spero che sia d'aiuto!