![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Orange |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 6.9.2004 Где: Russia, Moscow Репутация: 4 Всего: 5 |
Привет, помогите разобраться. Не получается пробудить основной трэд :
Добавлено через 11 минут и 8 секунд Есть такая мысль, поток не будится потому что notify вызывается на объекте LoadBar... Тогда не пойму, как его вызвать в LoadBar-е на объекте Startruntime? --------------------
Пару дней назад я познакомился с мальчиком...... |
||||
|
|||||
ivg |
|
|||
![]() Autonomous R&D ![]() ![]() Профиль Группа: Участник Сообщений: 686 Регистрация: 8.2.2006 Где: Екатеринбург Репутация: 33 Всего: 81 |
||||
|
||||
Orange |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 6.9.2004 Где: Russia, Moscow Репутация: 4 Всего: 5 |
Exception in thread "one thread" java.lang.IllegalMonitorStateException
at java.lang.Object.notify(Native Method) at model.StartRuntime$LoadBar.run(StartRuntime.java:95) ![]() --------------------
Пару дней назад я познакомился с мальчиком...... |
|||
|
||||
Dummy |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 21.5.2007 Репутация: 9 Всего: 19 |
45-ю строчку измени на
Это сообщение отредактировал(а) Dummy - 31.7.2008, 18:40 |
|||
|
||||
Orange |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 6.9.2004 Где: Russia, Moscow Репутация: 4 Всего: 5 |
Exception in thread "Basic Thread" java.lang.IllegalMonitorStateException
at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:485) at Startruntime.go(Startruntime.java:38) at Startruntime.<init>(Startruntime.java:17) at ProcessClass.startProcess(ProcessClass.java:17) at BasicThread.prepareProcess(BasicThread.java:21) at BasicThread.run(BasicThread.java:14) --------------------
Пару дней назад я познакомился с мальчиком...... |
|||
|
||||
Orange |
|
||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 6.9.2004 Где: Russia, Moscow Репутация: 4 Всего: 5 |
Вот убрал всё лишнее из кода, оставил только работу трэдов.
(Уже все варианты synchronized/notify перебрал - то IllegalMonitorStateException в "Basic Thread", то в "one thread" либо ексепшенов нет, но поток не просыпается. ![]() Где я накосячил? Main
BasicThread
Запуск процессов:
Ожидание завершения запущенного процесса, в котором и выбрасывается эксепшен на notify
Добавлено через 5 минут и 35 секунд Я уже вместо wait/notify ловлю основной поток в цикл while (!isMyWait) { if (isMyWait) { isMyWait = isValue = false; break; } } и после отработки waitFor() делаю isMyWait = true, но мне кажется, что это какое-то дурацкое решение... да и в любом случае хотелось бы разобраться с проблемой. --------------------
Пару дней назад я познакомился с мальчиком...... |
||||||||
|
|||||||||
Orange |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 6.9.2004 Где: Russia, Moscow Репутация: 4 Всего: 5 |
Так, всё-таки я эксепшн победил.
![]() Сделал метод go() synchronized (хотя вариант с
не работал.. (так я и не понял почему) и убрал join на треды t1 и t2. (тоже не понятно почему с ними не работало..) Пока тему не буду закрывать, может кто-нибудь откоментирует о вышесказанном. --------------------
Пару дней назад я познакомился с мальчиком...... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |