Ich bin gerade dabei mit Swing eine Anwendung zu schreiben. Nun hab' ich nur ein kleines Problem:
Ich habe ein MenuItem, das einen ActionListener besitzt. In dem ActionListener möchte ich einen Aufruf mit synchronized über einen Monitor synchronisieren.
Dies klappt jedoch nicht. Ich kann den Menüpunkt mehrmals aufrufen. Es scheint so, als würde das synchronized gar nicht interessieren. Hab' dann mal geschaut, welcher Thread das jeweils ist. Es war jedesmal der Thread AWT-EventQueue-0. Das beste: Laut der Ausgabe in die Konsole befand sich eben dieser Thread noch bei der Ausführung des ActionListeners bzw. der actionPerformed Methode.
Soviel ich weiss, kann sich doch ein Thread zu einer bestimmen Zeit nur an einem Ort des Codes befinden, oder? ???:L Auf jeden Fall fällt damit das Sychronisieren flach, da ja immer der selbe Thread auf den Monitor zugreift und der Zugriff ihm dann natürlich ja auch erlaubt wird.
Hat jemand von Euch eine Ahnung, wie ich das Problem umgehen kann? :cry:
Ich habe ein MenuItem, das einen ActionListener besitzt. In dem ActionListener möchte ich einen Aufruf mit synchronized über einen Monitor synchronisieren.
Dies klappt jedoch nicht. Ich kann den Menüpunkt mehrmals aufrufen. Es scheint so, als würde das synchronized gar nicht interessieren. Hab' dann mal geschaut, welcher Thread das jeweils ist. Es war jedesmal der Thread AWT-EventQueue-0. Das beste: Laut der Ausgabe in die Konsole befand sich eben dieser Thread noch bei der Ausführung des ActionListeners bzw. der actionPerformed Methode.
Soviel ich weiss, kann sich doch ein Thread zu einer bestimmen Zeit nur an einem Ort des Codes befinden, oder? ???:L Auf jeden Fall fällt damit das Sychronisieren flach, da ja immer der selbe Thread auf den Monitor zugreift und der Zugriff ihm dann natürlich ja auch erlaubt wird.
Hat jemand von Euch eine Ahnung, wie ich das Problem umgehen kann? :cry: