deadlocks

firmadankt

Mitglied
Hallo zusammen,

es kommt hin und wieder vor, dass unsere Applikation nicht mehr reagiert und nicht mehr neu gezeichnet wird. Meine Vermutung ist nun ein Deadlock, der mit Swingutilities.invokeAndWait() zusammen hängen könnte (was leider des öfteren verwendet wird).

Nun meine Frage:
Wi kann man festzustellen, welche Locks von einem bestimmten Thread gehalten werden, um einen Deadlock von vornherein auszuschließen?
 
Wenn die Applikation nicht mehr neu gezeichnet wird vermute ich eher, dass der Event Dispatch Thread blockiert ist.
Dementsprechent solltets du checken dass du folgende Punkte eingehalten hast:

Keine Aufrufe von Invoke and Wait aus dem Dispatch Thread (falls das überhaupt geht). Zum Beispiel aus Eventhandlern heraus.

Keine blockierenden Aufrufe aus dem EDT (z.B. Stream.read()). Immer wenn die Methode die aufgerufen wird eine lange Antwortzeit hat, weil sie beispielsweise darauf wartet aus dem Stream lesen zu können, blockiert sie solange ihren Thread.

Invoke and Wait nur aufrufen wenn auch gewartet werden muss, sonst invokeLater

Hoffe konnte schon mal nen bisserl helfen.

Mit richtigem Debuggen kenn ich mich leider nicht so gut aus.

MfG

Andibert
 
Zurück