HashTable kann ohne Performance-Verlust in Multithreaded-Anwendungen eingesetzt werden.

osion

Bekanntes Mitglied
Hallo

Diese Aussage hat mich überrascht:
"Der Container HashTable kann ohne Performance-Verlust in Multithreaded-Anwendungen eingesetzt werden."

Thread-Safe ist es meiner Meinung nicht, weil ich könnte ja mehrmals den gleichen Hash-Wert überschreiben.
 

KonradN

Super-Moderator
Mitarbeiter
Kannst Du evtl. etwas ausführen, was Du genau meinst?

Unlike the new collection implementations, Hashtable is synchronized. If a thread-safe implementation is not needed, it is recommended to use HashMap in place of Hashtable. If a thread-safe highly-concurrent implementation is desired, then it is recommended to use ConcurrentHashMap in place of Hashtable.

Ansonsten noch ein Vergleich HashMap zu Hashtable:
 

LimDul

Top Contributor
Bezüglich der Performance würde ich das auch eher als fraglich sehen.

Aber hierzu:
Thread-Safe ist es meiner Meinung nicht, weil ich könnte ja mehrmals den gleichen Hash-Wert überschreiben.
Das hat nix mit Thread-Sicherheit zu tun, dass mehrere Threads da einander Dinge überschreiben können.

Thread-Safe heißt, es gibt zwei Threads A und B, die eine Operation auf einem Objekt durchführen wollen. Thread A will opA durchführen, Thread B will opB durchführen. Wenn das Objekt Thread Safe ist, heißt es, wenn die beide es gleichzeitig durchführen wollen kommt eins von folgenden zwei Ergebnissen raus: Erst opA, dann opB oder erst opB und dann opA.

Sprich, dass Ergebnis ist dasselbe wenn sie in Reihenfolge durchgeführt werden (man weiß nur die Reihenfolge nicht).

Bei einem nicht Thread-Safen Objekt kann es passieren, dass dabei Murks raus kommt und Stände entstehen, die nicht entstehen würden, wenn man es in Reihenfolge macht.

Mal banal auf HashTable bezogen, wenn Thread A den Wert X speichern will und Thread B den Wert Y, dann ist sichergestellt, dass danach entweder X oder Y gespeichert ist (man weiß vielleicht nicht vorher welcher von beiden). Während bei einem nicht Thread-Safen Objekt vielleicht Z oder null am Ende gespeichert ist.
 

temi

Top Contributor
Bezüglich der Performance würde ich das auch eher als fraglich sehen.

Aber es könnte stimmen, denn es wird ja in der Doku darauf hingewiesen (siehe #2), dass es empfohlen wird die (vermutlich performantere) HashMap zu verwenden, wenn man Threadsicherheit nicht benötigt.

Es ist also wohl eher umgekehrt:

"Der Container HashTable kann ohne Performance-Gewinn auch in Singlethreaded-Anwendungen eingesetzt werden."
 

KonradN

Super-Moderator
Mitarbeiter
Die Frage ist, wie man Performance Verlust definiert. Und natürlich ist es ein Performance Verlust, wenn ein Thread warten muss, bis ein anderer fertig ist. Damit macht parallelisierung nur begrenzt Sinn, wenn alle Aufrufe synchronized sind und die Zugriffe eine große Bedeutung spielt.
 

httpdigest

Top Contributor
Ja,... also wenn der Bottleneck deiner Anwendung das synchronized einer HashTable ist (also ohne Contention mit mehreren Threads), dann hast du quasi alles richtig gemacht. :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Hashtable ohne Values Java Basics - Anfänger-Themen 5
B Hashtable Java Basics - Anfänger-Themen 3
H Klassen Auf eine Hashtable aus mehreren Klassen zugreifen Java Basics - Anfänger-Themen 12
arti28 Verkaufsautomat Enumerations HashTable Java Basics - Anfänger-Themen 1
D Hashtable Java Basics - Anfänger-Themen 4
K Hashtable mit eigenen Konstruktor Java Basics - Anfänger-Themen 2
K NullPointerException in der Hashtable Java Basics - Anfänger-Themen 4
T Collections Hashtable gezielt auslesen. Java Basics - Anfänger-Themen 13
B HashTable & Strings übergeben Java Basics - Anfänger-Themen 4
A Input/Output Hashtable Ausgabe Java Basics - Anfänger-Themen 1
P Key anhand von Value finden (Hashtable) Java Basics - Anfänger-Themen 3
S Hashtable Java Basics - Anfänger-Themen 2
T Werte in Hashtable neu zuweisen Java Basics - Anfänger-Themen 3
P 2D Welt, Hashtable Java Basics - Anfänger-Themen 5
D Hashtable/Hashmap Java Basics - Anfänger-Themen 2
D In Hashtable suchen Java Basics - Anfänger-Themen 3
yampi Objektsammlung - Hashtable, Vector, Arrays Java Basics - Anfänger-Themen 8
L Hashtable nicht wirklich geeignet für mein Vorhaben? Java Basics - Anfänger-Themen 3
P | zu einer hashtable hinzufügen Java Basics - Anfänger-Themen 7
D java.lang.outofmemoryerror java heap space bei Hashtable Java Basics - Anfänger-Themen 3
D Hashtable Value(Array) in String und dann Ausgeben Java Basics - Anfänger-Themen 23
S Fortsetzung meiner frage (hashtable) danke vorab an alle Java Basics - Anfänger-Themen 3
S BITTE UM HILFE HASHTABLE/import java.util.Hashtable in Ecplipse Java Basics - Anfänger-Themen 12
A Verschachtelte Hashtable ausgeben. Java Basics - Anfänger-Themen 3
D Eine Liste wie ne HashTable, nur mit auslesbaren Key . . . Java Basics - Anfänger-Themen 31
G Hashtable füllen Java Basics - Anfänger-Themen 2
G Gesamte Hashtable ausgeben Java Basics - Anfänger-Themen 3
L Arbeiten mit Vectoren in einer Hashtable Java Basics - Anfänger-Themen 2
A Unterschied zwischen HashMap und Hashtable Java Basics - Anfänger-Themen 20
G Sortierter Hashtable? Java Basics - Anfänger-Themen 3
D Eine abgeänderte Hashtable erstellen Java Basics - Anfänger-Themen 3
K Probleme mit java.util.hashtable Java Basics - Anfänger-Themen 10
G Hashtable -> Ordnerstruktur Java Basics - Anfänger-Themen 10
M Hashtable gleichzeitigen Zugriff verhindern Java Basics - Anfänger-Themen 11
C Problem mit Hashtable Java Basics - Anfänger-Themen 6
M Hashtable an Datenbank schicken Java Basics - Anfänger-Themen 3
F Hashtable mit String[] als value Java Basics - Anfänger-Themen 2
F invertierung einer Hashtable Java Basics - Anfänger-Themen 4
P HashTable auslesen und in createDocument ausgeben Java Basics - Anfänger-Themen 4
T Warum kann Hashtable get Methode nicht funktionieren? Java Basics - Anfänger-Themen 3
N NullPointerException bei meiner Hashtable Java Basics - Anfänger-Themen 2
M Hashtable oder Hashmap mit Inhalt vorbelegen Java Basics - Anfänger-Themen 2
C Hashtable-get Java Basics - Anfänger-Themen 2
K Hashtable mischen (shuffeln)? Java Basics - Anfänger-Themen 4
H Objekte in einer Hashtable am einfachsten sortieren Java Basics - Anfänger-Themen 13
G Hilfe! Wie Kreise in Hashtable ablegen und wieder auslesen? Java Basics - Anfänger-Themen 2
G unterschied hashtable und hashmap? Java Basics - Anfänger-Themen 3
A Hashtable - 3 Suchmöglichkeiten Java Basics - Anfänger-Themen 4
G hashtable und unsafe, unchecked Code Java Basics - Anfänger-Themen 3
L Hashtable Verständnis Frage Java Basics - Anfänger-Themen 4
G Hashtable oder was sonst? Java Basics - Anfänger-Themen 8
S Value von ein Hashtable collectionen Java Basics - Anfänger-Themen 3
S Hashtable & Datei Java Basics - Anfänger-Themen 4
W Hashtable Integer als Value Java Basics - Anfänger-Themen 6
S Hashtable probleme Java Basics - Anfänger-Themen 6
N ein array in der hashtable Java Basics - Anfänger-Themen 6
W Hashtable oder was Anderes Java Basics - Anfänger-Themen 8
I Warum ließt er den Inhalt der Hashtable nicht? Java Basics - Anfänger-Themen 5
G die keys einer Hashtable sortieren Java Basics - Anfänger-Themen 15
D Hashtable gibt eigenartiges wieder Java Basics - Anfänger-Themen 2
G hashtable jeden wert mit trim() bearbeiten Java Basics - Anfänger-Themen 3
K Objekte und deren Anzahl speichern, hashtable? Java Basics - Anfänger-Themen 9
P hashtable Java Basics - Anfänger-Themen 8
V Hashtable ausgeben Java Basics - Anfänger-Themen 4
V Suchen und ausgeben - Hashtable Java Basics - Anfänger-Themen 3
J HashTable Java Basics - Anfänger-Themen 4
G Inhalt einer Hashtable ausgeben Java Basics - Anfänger-Themen 2
A Hashtable als Rückgabewert Java Basics - Anfänger-Themen 3
N maximale Anzahl Schlüssel in einem Hashtable Java Basics - Anfänger-Themen 7
T Hashtable und Vektor Java Basics - Anfänger-Themen 3
R Hashtable wird falsch ausgegeben Java Basics - Anfänger-Themen 5
B Hashtable.containsKey Problem Java Basics - Anfänger-Themen 13
J Delay erzeugen, ohne Programm zu blockieren Java Basics - Anfänger-Themen 7
P Main Methode scheint Constructor aufzurufen, ohne dass es so gecoded ist Java Basics - Anfänger-Themen 2
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
V JSON-Objs aus JSON-Obj filtern und löschen (Manipulation ohne Kenntnis der vollst. Struktur) Java Basics - Anfänger-Themen 12
T Mehrere if bedingungen ohne & Java Basics - Anfänger-Themen 2
M methode aufrufen ohne parameter Java Basics - Anfänger-Themen 1
M Verständnisfrage: Warum wird die Datei ohne Inhalt übertragen Java Basics - Anfänger-Themen 3
G Programm läuft durch, ohne Eingabe aus dem Chat abzuwarten Java Basics - Anfänger-Themen 4
Mugetsu35 ArrayList Update ohne Index Java Basics - Anfänger-Themen 6
P 2n Potenzieren ohne Math.pow oder pow Java Basics - Anfänger-Themen 8
M 2d array ohne längen anlegen Java Basics - Anfänger-Themen 4
Zentriks Hilfe zu Sieb des Eratosthenes ohne boolean Java Basics - Anfänger-Themen 5
W GUI - JButton ohne Funktion? Java Basics - Anfänger-Themen 24
X Enum Abfrage ohne if, for, while oder switch Java Basics - Anfänger-Themen 21
R Buttons ohne Funktion Java Basics - Anfänger-Themen 2
JavaBeginner22 TextArea, ohne Zeilenumbruch? Java Basics - Anfänger-Themen 4
frager2345 Programm erstellen ohne Autoboxing und Unboxing Java Basics - Anfänger-Themen 13
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 5
S Was macht ++ ohne Schleife? Java Basics - Anfänger-Themen 4
berserkerdq2 An selbst ersteller txt Datei immer Text dranhängen, ohne den vorherign Text zu löschen Java Basics - Anfänger-Themen 8
U Methode wird genutzt, ohne dass ich die aufrufe? Java Basics - Anfänger-Themen 4
B Jar Dateien ohne IDE verwenden? Java Basics - Anfänger-Themen 1
M Wie verknüpfe ich eine Bedingung mit einer Methode ohne if-Verzweigung & Bedingungsoperator? Java Basics - Anfänger-Themen 2
M Konstruktor ohne Übergabe eines Wertes Java Basics - Anfänger-Themen 7
S Chars vergleichen ohne Betrachtung der Groß und Kleinschreibung Java Basics - Anfänger-Themen 7
javapingu Variablenwerte ändern ohne return Statement? Java Basics - Anfänger-Themen 7
R Frage zu Methoden (Rückgabewert u. ohne.) Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben