/* W tym przykładzie porównuję szybkość działania ConcurrentHashMap i zwykłwej HashMap opakowanej w synchronizedMap.
/* W tym przykładzie porównuję szybkość działania ConcurrentHashMap i zwykłej HashMap opakowanej w synchronizedMap.
* Program tworzy N wątków, które operują na słowniku String→Integer w taki sposób, że
* - losują liczbę od 1 do K - po konwersji na tekst staje się ona kluczem w słowniku,
* - wykonują operację modyfikacji zawartości słownika pod tym kluczem; aby koszt losowania itp. nie zaszumił kosztu samej mapy, operacja jest powtarzana kilkukrotnie z tym samym kluczem.
*/
publicclassConcMap{
// liczba wątków
privatestaticfinalintN=16;
// wielkość słownika
privatestaticfinalintK=100;
// ilość powtórzeń jednej operacji
privatestaticfinalintP=50;
// liczba wątków
privatestaticfinalintN=16;
// wielkość słownika
privatestaticfinalintK=100;
// ilość powtórzeń jednej operacji
privatestaticfinalintP=50;
// ilość powtórzeń całości
privatestaticfinalintR=10_000;
// ilość powtórzeń całości
privatestaticfinalintR=10_000;
// odkomentuj jedną z wersji i sprawdź
//private final Map<String, Integer> map = Collections.synchronizedMap(new HashMap<>());
* - wykonują operację modyfikacji zawartości słownika pod tym kluczem; aby koszt losowania itp. nie zaszumił kosztu samej mapy, operacja jest powtarzana kilkukrotnie z tym samym kluczem.