powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Многопоточность. Вернуть значение из метода call
7 сообщений из 7, страница 1 из 1
Многопоточность. Вернуть значение из метода call
    #39399195
Витяй1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!
Нужно сделать несколько синхронных запросов к серверу, обязательно дождаться результата выполнения предыдущего запроса и только после этого отправлять следующий.
У меня сделано так:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
 class SendData implements Callable<String>, ResponseReceiver{
            private Request req;
            public SendData(Request request){
                this.req = request;
            }

            @Override
            public String call() throws Exception {
                Api.sendRequest(req); // запрос на сервер
                return null;
            }

            @Override
            public void response(String s) {
                // сюда придет результат
            }
        }



Как полученный результат вернуть с помощью метода call?
...
Рейтинг: 0 / 0
Многопоточность. Вернуть значение из метода call
    #39399212
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Витяй1991Нужно сделать несколько синхронных запросов к серверу, обязательно дождаться результата выполнения предыдущего запроса и только после этого отправлять следующий.
убрать потоки. Либо придумать другую задачу.
...
Рейтинг: 0 / 0
Многопоточность. Вернуть значение из метода call
    #39399228
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очередь.

1) Поместить все запросы в очередь
2) В методе response, проверять, что очередь не пустая, извелакать следующий запрос/задание из очереди и отправлять его на выполнение.
3) В методе call, просто вызвать метод response /для первого раза/

Ну и прочитать про wait, notify )))

IMHO. Если я правильно понял задачу.
...
Рейтинг: 0 / 0
Многопоточность. Вернуть значение из метода call
    #39399258
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Витяй1991Нужно сделать несколько синхронных запросов к серверу, обязательно дождаться результата выполнения предыдущего запроса и только после этого отправлять следующий.Отправлять запросы в основном потоке по очереди
...
Рейтинг: 0 / 0
Многопоточность. Вернуть значение из метода call
    #39399276
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UsmanОтправлять запросы в основном потоке по очереди
+1
т.к. в задаче вообще нет требования по параллельности доступа или вычислений.
...
Рейтинг: 0 / 0
Многопоточность. Вернуть значение из метода call
    #39399324
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMHO N2.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
 class SendData implements Callable<String>, ResponseReceiver{
            private Request req;
            private String result;
            private Object monitor;
            public SendData(Request request){
                this.req = request;
                this.monitor = new Object();
            }

            @Override
            public String call() throws Exception {
                Api.sendRequest(req); // запрос на сервер
                monitor.wait();   // ждем пока обработка завершится
                return result;
            }

            @Override
            public void response(String s) {
                result = s;
                monitor.notify();
            }
        }
...
Рейтинг: 0 / 0
Многопоточность. Вернуть значение из метода call
    #39399413
imperfekt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CompletableFuture (Java 8) с цепочкой callback'ов:
http://www.deadcoderising.com/java8-writing-asynchronous-code-with-completablefuture/
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Многопоточность. Вернуть значение из метода call
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]