Fila de Thread

1 resposta
E

Pessoal,

tenho um tarefa que vai buscar dados no banco que precisa ser realizada em uma thread. Tenho um campo de texto que vai lançar esta tarefa sempre que for atualizado.

O problema é seguinte:

  1. apenas uma thread por vez pode executar esta tarefa para uma dada atualização do campo de texto
  2. se, enquanto uma busca estar sendo realizada, uma outra busca deve esperar a primeira busca terminar
  3. a requisição de uma terceira busca deve cancelar a segunda, e então esperar a primeira busca terminar

Em outras palavras, apenas uma thread por vez, e ultima solicitação que chegar deve remover quem estiver na fila e esperar a thread atual terminar

Existe maneira de implementar isso usando algum recurso de gerenciamento já existe na API do java ?

1 Resposta

felipeaqueiroz

Olá ewylba

Para o problema de apenas um thread por vez, eu acho que a solução seja usar métodos (ou blocos, se preferir) sincronizados.
http://download.oracle.com/javase/tutorial/essential/concurrency/syncmeth.html

Sobre

3) a requisição de uma terceira busca deve cancelar a segunda, e então esperar a primeira busca terminar
não entendi muito bem essa parte

Criado 21 de agosto de 2011
Ultima resposta 21 de ago. de 2011
Respostas 1
Participantes 2