Когда IllegalMonitorStateException кроме wait и notify?
От: Donz Россия http://donz-ru.livejournal.com
Дата: 13.03.08 13:37
Оценка:
В приложении (J2ME: CLDC 1.0, MIDP 2.0, работа с нитями соответствует JDK 1.1) возникает IllegalMonitorStateException. Последовательность действий, приводящих к нему, нашёл, но вот когда именно валится пока никак не пойму, так как ошибка гарантировано происходит только на одном очень тормозном телефоне, на остальных поймал только один раз.
Все вызовы wait и notify точно корректны и нить обладает монитором объекта, на котором вызывает эти методы, объекты для синхронизации объявлены final.
В каких ещё случаях ещё может возникать это исключение?
Есть сомнения насчёт корректности двойной синхронизации, когда код что-то типа этого:
synchronized( obj1 )
{
  //blablabla
  synchronized( obj2 )
  {
    obj2.notifyAll();
  }
}

Такая конструкция нормальна?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.