IllegalStateException при попытке войти в синхронизированный блок - PullRequest
1 голос
/ 19 февраля 2010

Что это означает, когда IllegalStateException генерируется при входе в синхронизированный блок?Я иногда вижу это в методе выполнения потока:

    public void run() {
        while (true) {
            int n = 0;
            synchronized (service) { // IllegalStateException
                n = processPendingRequests();
            }

            /*
             * If n > 0, we processed at least one element, in which case we
             * immediately check the queue again until it was empty.
             */
            if (n == 0) {
                sleep();
                continue;
            }
        }
    }

Может ли объект service вызвать IllegalStateException?Как?

1 Ответ

1 голос
/ 19 февраля 2010

В соответствии с Спецификацией языка Java , оператор "synchronized" не генерирует исключение IllegalStateException. Поэтому либо неверна спецификация языка, либо вы используете JVM, не соответствующую требованиям, либо неверно истолковали поведение вашей программы - насколько я вижу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...