E aeh galera!
Bom to com um probleminha no uso dos métodos wait() e notify().
Como usá-los da maneira correta?
A minha situação é o seguinte:
EU tenho uma thread de leitura para cada socket de conexão.
Uso o método read() de BufferedInputStream para esperar uma msg
do equipamento conectado (no meu caso, um Busca Preço, ou Terminal de Consulta).
Porém tenho de vertificar em tempos e tempos se o terminal ainda está conectado. Fiz um TimeTask para realizar a verificação.
Então, em periodos repetidos do tempo configurado, eu envio um comando para o terminal, “#live?”. Se ele estiver ativo, ele retornará. “#live”.
Como o metodo read() eh bloqueante, toda leitura de streams para um terminal especifico sera feita pela thread alocada para esse fim, ja que, na thread de leitura, o metodo esta parado no metodo read();
Entao a sequencia ficaria + ou - assim:
- Deu o tempo da timertask executar
- escreve o comando “#live?” para o terminal
- espera (wait()???)
- a thread de leitura do terminal especifico le o comando.
- se respondeu ou nao, libere (notify()???) a timertask para processar a resposta (ou a ausencia dela)
Valeu, brothers, quem puder me ajudar com esse problema, agradeço.