Thread-Sicherheit
Thread-Sicherheit in Java-Sprache
1 Unveränderlich. Unveränderliche Objekte müssen Thread-sicher sein
2. Damit eine Klasse unabhängig von der Laufzeitumgebung absolut Thread-sicher ist, benötigt der Aufrufer keine zusätzlichen Synchronisationsmaßnahmen, was in der Regel einen hohen oder sogar unrealistischen Preis erfordert. , markieren sich selbst als Thread-sichere Klassen in der Java-API, von denen die meisten nicht absolut Thread-sicher sind
3 Relative Thread-Sicherheit
4 Thread-kompatibel Das Objekt selbst ist nicht Thread-sicher sicher, kann aber übergeben werden. Verwenden Sie Synchronisierungsmethoden auf der aufrufenden Seite korrekt, um sicherzustellen, dass Objekte in gleichzeitigen Umgebungen sicher verwendet werden können
5 Thread-Opposition
Thread-sichere Implementierungsmethoden
1 Synchronisation mit gegenseitigem Ausschluss, Murual Exclusion & Synchronization
Gemeinsame Parallelitätskorrektheitsgarantie für Mobiltelefone. Synchronisierung bezieht sich darauf, dass mehrere Threads gleichzeitig auf gemeinsam genutzte Daten zugreifen und die gemeinsam genutzten Daten nur von einem Thread gleichzeitig gespeichert werden.
Die grundlegendste Interaktion Die Ausschlussmethode ist das synchronisierte Schlüsselwort.
Sie können auch die Sperre im Paket java.util.concurrent verwenden, um die Synchronisierung von ReentrantLock zu erreichen.
JDK1.6 hat die Synchronisierung optimiert und die Effizienz ist im Wesentlichen die gleiche wie bei ReentrantLock.
2 Nicht blockierende Synchronisation
Optimistische Parallelitätsstrategie basierend auf Konflikterkennung
CAS-Operation Compare-and-Swap
3 Kein Synchronisationsschema
Lock-Optimierung
1. Spin-Lock und adaptiver Spin
2. Lock-Beseitigung
3. Lock-Vergröberung
4. Größen-Lock
5. Vorspannungssperre