java.lang. IllegalMonitorStateException: (m=null), Неудавшийся для получения монитора для

Определения локальных функций внутри функции недопустимы в C.

35
задан Esteban Küber 15 November 2009 в 21:33
поделиться

2 ответа

См. Javadoc для Object.wait.

в частности «Текущий поток должен владеть монитором этого объекта . " и «[выбрасывает] IllegalMonitorStateException - если текущий поток не является владельцем монитора объекта». То есть вам нужно синхронизировать объект, который вы собираетесь вызвать, wait on.

, поэтому ваш код должен быть:

synchronized (available) {
    available.wait();
}
72
ответ дан 27 November 2019 в 06:49
поделиться

Ни у одного из них нет преимущества в производительности или распределении памяти - они оба будут компилироваться в один и тот же байт-код.

Оператор import указывает компилятору, где найти классы, на которые ссылается исходный код.

Однако есть преимущество импорта только по классам. Если в двух пакетах есть класс с одним и тем же именем, возникнет конфликт относительно того, на какой класс идет ссылка.

Одним из таких примеров является класс java.awt.List и класс java.util.List .

Допустим, мы хотим использовать java.awt.Panel и java.util.List . Если источник импортирует пакеты следующим образом:

import java.awt.*;
import java.util.*;

Тогда ссылка на класс List будет неоднозначной:

List list; // Which "List" is this from? java.util? java.awt?

Однако,

7
ответ дан 27 November 2019 в 06:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: