Ich weiß, dass dieser Thread fast 2 Jahre alt ist, muss ihn aber noch schließen, da ich auch mit demselben Problem zu dieser Q / A-Sitzung gekommen bin ...
Bitte lesen Sie diese Definition von illegalMonitorException immer wieder ...
IllegalMonitorException wird ausgelöst, um anzuzeigen, dass ein Thread versucht hat, auf dem Monitor eines Objekts zu warten oder andere Threads zu benachrichtigen, die auf dem Monitor eines Objekts warten, ohne den angegebenen Monitor zu besitzen.
Diese Zeile sagt immer wieder, dass IllegalMonitorException auftritt, wenn eine der beiden Situationen eintritt ....
1> Warten Sie auf dem Monitor eines Objekts, ohne den angegebenen Monitor zu besitzen.
2> Benachrichtigen Sie andere Threads, die auf dem Monitor eines Objekts warten, ohne den angegebenen Monitor zu besitzen.
Einige haben vielleicht ihre Antworten bekommen ... wer alles nicht, dann überprüfen Sie bitte 2 Aussagen ...
synchronisiert (Objekt)
object.wait ()
Wenn beide Objekte gleich sind ... kann keine illegalMonitorException auftreten.
Lesen Sie jetzt noch einmal die IllegalMonitorException-Definition und Sie werden sie nicht wieder vergessen ...