Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2010, 11:30   #1
Alexcomeback
Пользователь
 
Регистрация: 03.04.2009
Сообщений: 59
По умолчанию Остановка работы функции

Приветствую, уважаемые программисты.
При создании программы возникла необходимость постановки функции на паузу и ожидания, например, нажатия какой-либо кнопки. Каким образом это можно реализовать?

И, с вашего позволения, маленький вопрос вдогонку - существует ли в Java ограничение на глубину рекурсии и количество вызовов функций?
Alexcomeback вне форума Ответить с цитированием
Старый 08.01.2011, 15:34   #2
jmadhead
Пользователь
 
Регистрация: 10.09.2009
Сообщений: 19
По умолчанию

"на паузу" можно поставить поток, т.е. необходимо как минимум два поток: один спит, другой его будит при возникновении события.
Глубина рекурсии ограничена размером стэка, а размер стэка устанавливается парамтром запуска jvm (смотри java --help)
jmadhead вне форума Ответить с цитированием
Старый 11.01.2011, 20:38   #3
BleStaR
Форумчанин
 
Регистрация: 25.09.2009
Сообщений: 234
По умолчанию

если выполнение функцией одного лишнего шага не критично, тогда можно просто добавить глобальную переменную типа boolean. И в теле функции сделать проверку, мол если true тогда блок выполняется. А на событие нажатие клавиши прописать изменение этой переменной.
BleStaR вне форума Ответить с цитированием
Старый 12.01.2011, 09:45   #4
jmadhead
Пользователь
 
Регистрация: 10.09.2009
Сообщений: 19
По умолчанию

Цитата:
Сообщение от BleStaR Посмотреть сообщение
если выполнение функцией одного лишнего шага не критично, тогда можно просто добавить глобальную переменную типа boolean. И в теле функции сделать проверку, мол если true тогда блок выполняется. А на событие нажатие клавиши прописать изменение этой переменной.
На мой взгляд активное ожидание (то есть бесконечный цикл с проверкой каких-то условий) не самый лучший выбор. Всётаки программим то уже в многозадачных системах и это нужно учитывать. Тем более если java, то лучше сразу многопоточность выучить.
Кстати, ТС не указал что за программу пишет. Консольная или ,может быть, SWING?
jmadhead вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа на СИ++, используя функции работы с файлами и функции <string.h> Аня Popova Фриланс 9 13.09.2010 15:52
Остановка работы формы Darw1n Помощь студентам 4 15.03.2010 13:54
Функции работы со строками JeyKip Общие вопросы C/C++ 4 03.10.2009 17:55