ThreadPool é Executor como Polling é?
-
11-09-2019 - |
Pergunta
Executor do Java é (tanto quanto eu entendo) uma abstração sobre o conceito ThreadPool -. Algo que pode aceitar e executar (execute) tarefas
Eu estou procurando uma excepção semelhante para o conceito Polling. Eu preciso continuamente poll (dequeue) itens fora de um específico Queue (que não implementa ??em> BlockingQueue
), executá-los e dormir, e repetir tudo isso até o desligamento.
Existe uma abstração ready-made ou devo escrever algo em meu próprio?
(Sugestões de um título melhor são bem-vindos)
Solução
Polling é fácil:
Thread t = new Thread(new Runnable() {
public void run() {
try {
while (!t.isInterrupted()) {
Object item;
while ((item = queue.take()) == null) {//does not block
synchronized (lock) { lock.wait(1000L) } //spin on a lock
}
//item is not null
handle(item);
}
} catch (InterruptedException e) { }
}
});
t.start();
Talvez você precisa reformular a sua pergunta como eu não tenho certeza exatamente o que é que você está tentando fazer?
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow