powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Долгое выполнение метода
4 сообщений из 4, страница 1 из 1
Долгое выполнение метода
    #37846030
denis11111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Может кто-то сталкивался с этим:
Например есть метод, который конектится к некому источнику даных. Если конект удался то метод возвращает истину, если нет то лож.
Иногда, бивает такое что этот метод очень нолго конектится, и не выдает ни истины, ни лжы. Можна ли как-то контролировать время выполнинея этого метода? Тоб-то если он те выдает не истину не лож за определенное время, то прекращать его выполнение и продолжать выполнение програмы.
...
Рейтинг: 0 / 0
Долгое выполнение метода
    #37846111
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По своей сути любой сетевой коннект это коннект к сокету. При установлении сокет-соединения всегда можно установить таймаут. Так что ответ - да, в общем случае можно. В конкретном случае - надо смотреть. При грамотной реализации должно быть можно.
...
Рейтинг: 0 / 0
Долгое выполнение метода
    #37846186
denis11111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
long timeout = 5000;
            Thread t = new Thread(new Runnable() {

                public void run() {
                    try {
                        connected = opc.connect();
                    } catch (Throwable ex) {
                        Logger.getLogger(OPCForDB.class.getName()).log(Level.SEVERE, null, ex);
                    }
                }
            });
            t.start();
            t.join(timeout);



Как-то так. Если метод не выполнится за 5000млс, то поток, в котором он выполняется просто умрет разом из методом...
...
Рейтинг: 0 / 0
Долгое выполнение метода
    #37846247
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, это решение, но достаточно кривое, ибо у вас остается болтаться непонятный поток, даже после того, как ваш основной поток пошел дальше.
Правильное решение должно выглядеть так:
Код: java
1.
2.
3.
4.
long timeout = 5000;
try {
    connected = opc.connect(timeout);
} catch (...) { ... }
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Долгое выполнение метода
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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