15.24. Die tödliche Seite der Synchronisierung

Seien Sie vorsichtig, wenn Sie synchronisierten Code verwenden, denn nichts kann Ihr Programm so in die Knie zwingen wie ein Thread-Deadlock. Dabei handelt es sich um eine gegenseitige Blockierung, zu der es kommt, wenn Sie zwei Threads haben, die beide jeweils einen Schlüssel festhalten, den der andere haben möchte. Es gibt keinen Weg, der aus diesem Szenario herausführt, daher sitzen die beiden Threads einfach da und warten. Und warten. Und warten.

Wenn Sie mit Datenbanken oder anderen Anwendungsservern vertraut sind, kommt Ihnen das Problem vielleicht bekannt vor; Datenbanken haben oft einen ähnlichen Sperrmechanismus wie die Synchronisierung. Aber ein echtes Transaktionsmanagement-System kann ...

Get Java™ von Kopf bis Fuß now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.