Melhorar thread - ajuda

0 respostas
java
CALERA

Olá pessoal!

Estou com um probleminha aqui e por este motivo, gostaria da ajuda de vocês.

No projeto que estou construindo ( swing ), tenho uma tabela que precisa ser “atualizada” de tempos em tempos e para isso, pensei em 2 maneiras.

Criei 3 threads que executam em tempos diferentes e ficariam assim:

A primeira executa um método que verifica se a data e hora de 3 colunas estão fora do prazo de acordo à data e hora do sistema ( esta funciona como eu preciso e esta não pode sair ).

As outras duas são referentes ao banco de dados, uma verifica se a quantidade de registros é diferente da quantidade de registros da jTable, se for, ela atualiza a tabela e a outra a cada 10 minutos atualiza a jTable sem verificar nada, só atualiza.

O problema acontece ao longo do tempo, ou seja, uma thread ‘atrapalha’ a outra, logo concluo que minha ‘ideia’ está errada.

Pensei em fazer somente uma thread que executasse essas 3 tarefas no seu tempo devido ( 5 segundos, 1 minuto e 5 minutos ) e minha dúvida seria exatamente esta: Como posso fazer isso funcionar corretamente?

Agradeço a ajuda!

 para exemplo, a thread que eu deixei rodando e está funcionando sem apresentar erros:

``

public void threadCincoSegundos() {

Thread th1 = new Thread(new Runnable() { //cria uma thread

public void run() {

while (true) { //roda indefinidamente
verificaSla();

                try {
                    Thread.sleep(5000); // 5 segundos
                } catch (InterruptedException ex) {
                    icon = new ImageIcon(getClass().getResource("/source/error.png"));
                    JOptionPane.showMessageDialog(null, "Thread 5 Segundos apresentou erro.\nErro:" + ex, " SLA - Site Watcher - Mensagem:", 0, icon);
                }
            }
        }
    }
    );
    th1.start();
}

``

Criado 2 de fevereiro de 2016
Respostas 0
Participantes 1