Dieser Artikel analysiert die Verwendung und die gleichzeitige Verwendung in Java im Detail. Teilen Sie es für alle für Ihre Referenz. Die spezifische Analyse ist wie folgt:
1. Der Synchronbehälter enthält zwei Teile: Vektor und Hashtable
Das andere ist eine Synchronverpackungsklasse, die durch Sammlungen erstellt wurde. Der synchrone Container interviewt alle Zustände des Containers, um die Sicherheit der Gewinde zu erreichen.
Sie haben die folgenden Probleme:
a) Für den Betrieb ist ein zusätzlicher Schlossschutz erforderlich. Zum Beispiel iterative fehlende Bedingungen wie das Hinzufügen.
b) ToString, HashCode, Gleichen wird indirekt iterativ als iTerativ bezeichnet, und Sie müssen auf die Parallelität achten.
2. gleichzeitiger Behälter in Java5.0.
Concurrenthashmap kann die synchrone Kartenimplementierung ersetzen.
Wenn es hauptsächlich gelesen wird, ist CopyonWriteArrayList eine synchrone Implementierung der Liste.
Gleichzeitig ist Warteschlange und Blockingqueue: ConcurentLinkedQueue: FIFO -Warteschlange.
Priorität: Nicht -Merger -Prioritätswarteschlange.
Blockingqueue erhöhte die Blockierung und Erfassung von Blockieren.
A) Concurenthashmap: Es ist kein öffentliches Schloss, sondern ein separates Schloss. Auf eine beliebige Anzahl von Lesefäden kann gleichzeitig zugegriffen werden. Leser und Autoren können auch gleichzeitig auf die Karte zugreifen, und die begrenzte Anzahl von Schreiben kann auch die Karte gleichzeitig ändern. Die Größe und die Isempty -Sprache werden jedoch geschätzt, was geschätzt wird.
B) COPYONWRITEARRAYLIST: Der Iterator behält eine Basisarray -Referenz für das untere Basis von Basis bei, und die Referenz wird nicht geändert.
3. Synchronisator
a) Countdownlatch. Der Konstruktorparameter ist N nach dem Countdown, n ist 0 und alle Wait -Threads werden weiter ausgeführt.
b) Futuretask: Runnable berechnen, das durch Callable implementiert werden kann und das Ergebnis tragen kann. Einschließlich: Warten Sie, rennen Sie und vervollständigen.
c) Semaphor: Die Anzahl der Aktivitäten, auf die gleichzeitig zugegriffen werden kann
D) Cyclicbarrier: Ähnlich wie bei Aresie. Das Schloss wartet auf den Vorfall und das Level wartet auf andere Threads. Initial N, Runnable R, N -Threads sind warten ().
Es ist zu hoffen, dass dieser Artikel für Java -Programmdesign aller hilfreich ist.