ConcurrentHashMap: Können wir uns darauf verlassen?

Aus dem Dokument von ConcurrentHashMap:

Eine Hash-Tabelle, die die vollständige Parallelität von Abrufen und die anpassbare erwartete Parallelität für Aktualisierungen unterstützt.

Können wir das voll und ganz glauben?ConcurrentHashMap funktioniert thread sicherer Betrieb?

Ich verwende ConcurrentHashMap, um Schlüssel mit ihren Werten zuzuordnen. Mein Schlüssel-Wert-Paar ist:

Map<Integer,ArrayList<Double>> map1 = new ConcurrentHashMap();

Die Tastengröße reicht von [0,1000000]. Ich habe 20 Threads, die auf einen Wert zugreifen können, der jeweils einem Schlüssel entspricht. Dies ist nicht so häufig, aber diese Bedingung ist möglich. Ich erhalte eine Unendlichkeit von folgender Methode:

Double sum =0.0; 
sum = sum + Math.exp(getScore(contextFeatureVector,entry.getValue())+constant);

contextFeatureVector undentry.getValue()sind Arraylisten, die einem Schlüssel zugeordnet sind.

[BEARBEITEN]

 constant =0.0001

private double getScore(List<Double> featureVector,List<Double>weightVector) throws NullPointerException    
{
    double score =0.0;
    int length = featureVector.size();
    for (int i =0 ; i< length ; i++){
    score = score + (featureVector.get(i)*weightVector.get(i)); 
    }

    return score;
}

BeidefeatureVector<> and <code>weightVector</code> looks like

[-0.005554038592516575, 0.0048966974158881175, -0.05315976588195846, -0.030837804373964654, 0.014483064988148562, -0.018962129117649, -0.015221386014208877, 0.015825702365331477, -0.11363620479662287, 0.00802609847263844, -0.062106636476812194, 0.008108854471293185, -0.03193255218671684, 0.04949650992670292, -0.0545583154094599, -0.04873314092706468, 0.013534731656877033, 0.08433117163682455, 0.050310355477044114, -0.002420513353516017, -0.02708299928442614, -0.023489187394176294, -0.1277699782685597, -0.10071004855129333, 0.08649040730064464, -0.04940329664431305, -0.027481729446035053, -0.0571846057609884, -0.036738550618481455, -0.035608113682344365]

Daher ist der von getScore zurückgegebene Wert nicht außergewöhnlich groß. es wird in einigen tausend sein.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage