Многопоточность и планирование JavaJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Многопоточность и планирование Java

Сообщение Anonymous »

Скажите, пожалуйста, как лучше это сделать: у меня много объектов, около 200, которые обновляют свое состояние из сети раз в 20 секунд (аналогично обновляемой веб-странице). У каждого объекта есть несколько наблюдателей/подписчиков, и как только у объекта нет наблюдателей, он перестает обновляться и объект перестает существовать.
Я не придумал ничего типа запуска отдельного поток для каждого объекта, обновляя его в цикле и засыпая на 20 секунд. А затем, когда последний наблюдатель завершит работу, измените флаг прерывания и используйте его для завершения потока.
public class Controller implements Runnable {
...
public void run() {
log.info(Thread.currentThread().getName() + " start control: " + page.getUri().toString());
while (!Thread.currentThread().isInterrupted()) {
try {
notificationNewEvent(page.refreshEvents());
Thread.sleep(20000);
} catch (InterruptedException e) {
log.info("Thread is stop. ID:{}, Name: {}", page.getZip(), page.getTitle());
Thread.currentThread().interrupt();
}
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/784 ... uling-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»