@synapse_people

Синхронизация в JAVA?

В общем суть: Имеется метод вход, который посылает пакет входа на сервер и лач(CountDownLatch) с количеством 1, который понижается тогда, когда с сервера придет ответ - результат входа.
Вход примерно такой:
1. создаем лач
2. посылаем пакет
3. ждем лач(await)
4. Получаем данные о аккаунте, которые хранятся просто в классе полем "data".
Вызов с сервера примерно такой:
Проверяем ответ, если нужный, то складываем данные в data и понижаем латч.

Как мне сделать это идеально, т.к. иногда из-за того, что вызов с сервера в другом потоке не успевает установится поле в классе и в методе входа вываливается нул поинтер...
В общем как лучше всего синхронизировать метод входа, если результат приходит ассинхронно, а входа метод должен быть синхронный и блокирующий..
При этом, если метод вызвали, а результат не пришел и методы вызвали еще раз нужно выбрасывать исключение..
Посоветуйте. Спасибо!

АП:Туда же..
Что делать, если у тебя есть метод возвращающий boolean - canHandle, если там true, то метод входа можно вызывать, если false, значит подключения нету и метод входа вывалит ошибку.
Как в джаве можно подождать, пока метод будет возвр. true? while(canHandle()) не предлагайте плиз...
  • Вопрос задан
  • 214 просмотров
Решения вопроса 1
@razer89
Android-разработчик
Вам следует взглянуть в сторону Listeners (слушателей событий)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽