Heim >Java >javaLernprogramm >Detaillierte Einführung in ConcurrentHashMap
In diesem Artikel werden hauptsächlich relevante Informationen zur Verwendung von ConcurrentHashMap und Zählern zum Implementieren von Sperren vorgestellt. Freunde, die dies benötigen, können sich auf Java beziehen. Verwenden von ConcurrentHashMap und Zählern zum Implementieren von Sperren Geschäftsdaten, der einfache Code lautet wie folgt: import java.util.ArrayList; import java.util.HashMap; java.util.List importieren; java.util.Map importieren; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicInteger; öffentliche Klasse TestServiceImpl {
Einführung: In diesem Artikel werden hauptsächlich relevante Informationen zur Verwendung von ConcurrentHashMap und Counter zum Implementieren von Sperren vorgestellt
2 🎜 >Detaillierter Beispielcode, der drei Möglichkeiten der Implementierung feinkörniger Java-Sperren erklärt
Einführung: Kürzlich bei der Arbeit Ich bin auf einige Szenarien mit hoher Parallelität gestoßen, die eine Sperre erforderten, um die Korrektheit der Geschäftslogik sicherzustellen, und es war erforderlich, dass die Leistung nach der Sperrung nicht stark beeinträchtigt wird. Die ursprüngliche Idee besteht darin, den Zeitstempel, die ID und andere Schlüsselwörter der Daten zu sperren, um die Parallelität verschiedener Arten der Datenverarbeitung sicherzustellen. Die von Javas eigener API bereitgestellte Sperrgranularität ist zu groß, um diese Anforderungen gleichzeitig zu erfüllen, daher habe ich selbst ein paar einfache Erweiterungen geschrieben ... 1. Segmentierte Sperren basieren auf der Segmentierungsidee von concurrentHashMap und generieren zunächst eine bestimmte Zahl von Schlössern. Bei spezifischer Verwendung wird das entsprechende Schloss basierend auf dem Schlüssel zurückgegeben. Dies ist die einfachste von mehreren Implementierungen 🎜 >Einführung: Paket com.jms;import java.util.Map;import java.util.concurrent.ConcurrentHashMap;import javax.jms.BytesMessage;import javax.jms.Connection;import javax.jms.ConnectionFactory;import javax.jms . Destination;import javax.jms.JMSException;impo
【Empfohlene verwandte Fragen und Antworten】: Die Rolle des Java-Schlüsselworts volatile
java – Was bedeutet readValueUnderLock(e) im concurrentHashMap-Quellcode?
Warum sollten die Elemente im HashEntry-Knoten von ConcurrentHashMap in Java als endgültig definiert werden?
Parallelität – ConcurrentHashMap in Java kann nicht gesperrt werden, um exklusiven Zugriff durchzuführen? ?
java - ConcurrentHashMap Wenn Multithreads Daten abrufen, stellen Sie sicher, dass andere Threads diese nicht einfügen oder beeinflussen?
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in ConcurrentHashMap. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!