Heim  >  Artikel  >  Java  >  Beispielanalyse von Interviewfragen zum Sperren in Java

Beispielanalyse von Interviewfragen zum Sperren in Java

WBOY
WBOYnach vorne
2023-05-05 08:13:061423Durchsuche

1. Der Unterschied zwischen synchronisierten Effekten auf statischen Methoden und nicht statischen Methoden. Andere ähnliche Objekte haben ihre eigenen Speichersperren. Zu diesem Zeitpunkt führt die Ausführung der Synchronisierungsmethode des Objekts in mehr als einem anderen Thread (Hinweis: Es ist das Objekt) zu gegenseitigem Ausschluss. Statische Methode: Äquivalent zum Hinzufügen einer Sperre auf der Klasse (*.class Befindet sich im Codebereich, die statische Methode befindet sich im statischen Bereich. Von dieser Klasse generierte Objekte teilen sich diese statische Methode, sodass N Objekte um diesen Speicher konkurrieren),

Zu diesem Zeitpunkt so lange Da es sich um ein von dieser Klasse generiertes Objekt handelt, wird diese statische Methode als gegenseitiger Ausschluss bezeichnet. Das heißt, alle Objekte dieser Klasse teilen sich eine Sperre.

2. Was sind die Arten von Sperren? ) Sperrenfreie und leichte Sperren, voreingenommene Sperren und schwere Sperren

volatile erreicht Synchronisation (nur Sichtbarkeit ist garantiert, nicht Atomizität). 4. Der Unterschied zwischen synchronisierten und Sperrmechanismen

synchronized verwendete ursprünglich den pessimistischen Sperrmechanismus der CPU, dh der Thread erhält eine exklusive Sperre. Eine exklusive Sperre bedeutet, dass andere Threads nur auf die Blockierung warten können, bis der Thread die Sperre aufhebt.

Lock verwendet eine optimistische Sperrmethode. Die sogenannte optimistische Sperre besteht darin, einen Vorgang jedes Mal ohne Sperre abzuschließen, jedoch unter der Annahme, dass kein Konflikt vorliegt. Wenn er aufgrund eines Konflikts fehlschlägt, wird er wiederholt, bis er erfolgreich ist. Der durch optimistische Sperren implementierte Mechanismus ist die CAS-Operation (Compare and Swap).

5. Lassen Sie uns über das Thema Thread-Sicherheit sprechen. Thread-Sicherheit ist ein Thema im Bereich Multithreading. Thread-Sicherheit kann einfach als eine Methode oder Instanz verstanden werden, die in einem Multithreading verwendet werden kann Umgebung ohne Probleme.

In der Java-Multithread-Programmierung gibt es mehrere Möglichkeiten, Java-Thread-Sicherheit zu erreichen:

Der einfachste Weg ist die Verwendung des Schlüsselworts Synchronization.

Verwenden Sie die atomaren Klassen im Paket java.util.concurrent.atomic, z. B. AtomicInteger

Verwenden Sie die Sperren im Paket java.util.concurrent.locks

Verwenden Sie die threadsichere Sammlung ConcurrentHashMap

Verwenden Sie das Schlüsselwort volatile, um die Sichtbarkeit von Variablen sicherzustellen

Das obige ist der detaillierte Inhalt vonBeispielanalyse von Interviewfragen zum Sperren in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen