Heim > Java > JavaBase > Hauptteil

Lernen Sie die Verwendung von Java-Sperren mit Netty

coldplay.xixi
Freigeben: 2021-01-04 10:04:24
nach vorne
2211 Leute haben es durchsucht

Java-Basis-Tutorial In der Kolumne erfahren Sie, wie Sie Java-Sperren mit Netty lernen

Reduzieren Sie die Granularität Lernen Sie die Verwendung von Java-Sperren mit Netty

2 Die Größe des Sperrobjekts selbst

Reduzieren Sie den Speicherplatzverbrauch

    Atomic long V.S long
  • Ersteres ist ein Objekt, einschließlich eines Objektheaders zum Speichern von Hashcode, Sperren und andere Informationen. Es belegt 16 Bytes unter einem 64-Bit-System. Unter einem 64-Bit-System:
    volatile long= 8 Bytes
    AtomicLong = 8 Bytes (volatile long) + 16 Bytes (Objektheader) + 8 Bytes (Referenz). = 32 Bytes
  • Sparen Sie mindestens 24 Bytes!

Also Atomic*-Objekte => Flüchtiger Primärtyp + Statischer Atomic*FieldUpdater

    3 Sperrgeschwindigkeit

  • Verbessern Sie die Parallelität

  • LongCounter
  • Wird für Funktionen wie verwendet als Aufzeichnen der Anzahl der Speicherzuordnungsbytes von.
    Unter hoher Parallelität: java.util.concurrent.atomic.AtomicLong => java.util.concurrent.atomic.LongAdder

Fazit: Messen und nutzen Sie die neuesten JDK-Funktionen zeitnah.

Wählen Sie je nach Bedarf verschiedene aus verschiedene Situationen Gleichzeitige Paketimplementierung

JDK< 1.8 berücksichtigt ConcurrentHashMapV8 (die Version von ConcurrentHashMap in jDK8)

4 Wählen Sie verschiedene Parallelitätsklassen für verschiedene Szenarien

Ändern Sie je nach Bedarf

C Verliere und warte auf das Shutdown-Event-Executor (Event Executor): Object.wait/ notify => CountDownLatch


Queue, die für das Speichern von Aufgaben in der Nio-Event-Schleife verantwortlich ist

Jdks LinkedBlockingQueue (MPMC, mehrere Produzenten und mehrere Konsumenten) –> jctools' MPSC io .netty.util.internal.PlatformDependent.Mpsc#newMpscQueue(int):



  • 5 Der Wert der Sperre

  • Wenn Sie es nicht verwenden können, verwenden Sie es nicht
  • Netty Anwendungsszenario: teilweise seriell + insgesamt parallel> - Warteschlangen- und Mehrfach-Thread-Modus:

    Reduzieren Sie Benutzerentwicklungsschwierigkeiten, einfache Logik, verbessern Sie die Verarbeitungsleistung.
    Vermeiden Sie zusätzlichen Overhead wie Kontextwechsel und Parallelitätsschutz durch Sperren.

    Vermeiden Sie die Verwendung von Sperren: Verwenden Sie ThreadLocal um Ressourcenkonflikte zu vermeiden, zum Beispiel Nettys leichtgewichtige Thread-Pool-Implementierung

Das obige ist der detaillierte Inhalt vonLernen Sie die Verwendung von Java-Sperren mit Netty. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage