3.2 Thread-Eigenschaften und -Zustände
182
3.2.1 Der Name eines Threads
182
3.2.3 Die Zustände eines Threads *
183
3.2.4 Schläfer gesucht
184
3.2.5 Mit yield() auf Rechenzeit verzichten
186
3.2.6 Der Thread als Dämon
187
3.2.7 Freiheit für den Thread – das Ende
189
3.2.8 Einen Thread höflich mit Interrupt beenden
189
3.2.9 UncaughtExceptionHandler für unbehandelte Ausnahmen
191
3.2.10 Der stop() von außen und die Rettung mit ThreadDeath *
192
3.2.11 Ein Rendezvous mit join(...) *
194
3.2.12 Arbeit niederlegen und wieder aufnehmen *
196
3.4 Synchronisation über kritische Abschnitte
206
3.4.1 Gemeinsam genutzte Daten
206
3.4.2 Probleme beim gemeinsamen Zugriff und kritische Abschnitte
206
3.4.3 Punkte nebenläufig initialisieren
208
3.4.4 i++ sieht atomar aus, ist es aber nicht *
210
3.4.5 Kritische Abschnitte schützen
211
3.4.6 Kritische Abschnitte mit ReentrantLock schützen
212
3.4.7 Synchronisieren mit synchronized
219
3.4.8 Synchronized-Methoden der Klasse StringBuffer *
220
3.4.9 Mit synchronized synchronisierte Blöcke
221
3.4.10 Dann machen wir doch gleich alles synchronisiert!
222
3.4.11 Lock-Freigabe im Fall von Exceptions
223
3.4.13 Mit synchronized nachträglich synchronisieren *
226
3.4.14 Monitore sind reentrant – gut für die Geschwindigkeit *
227
3.4.15 Synchronisierte Methodenaufrufe zusammenfassen *
228