Bom dia, galera estou implementando o conceito de threads em um sistema pronto que já terminei , porém estou tendo dificuldades no entendimento e na implementação, bom achei essa linha de codigo aqui, alguém pode me explicar este codigo e como e aonde implementar…
public void start() {
if (tempo == null) {
tempo = new Thread(this, “Clock”);
tempo.start();
}
Bom dia Jadson, com a chegada do java 8 vieram também as expressões lambdas, elas facilitam e simplificam muito a implementação de threads aconselho que dê uma estudada.
Este fonte que você postou é dividido em duas partes, a primeira parte é o método start(), o método start é como o main das threads, neste caso o método start irá instanciar uma nova thread e chamará o método start padrão das threads. O método start procura o método run da thread e executa o mesmo. O método currentThread retorna a thread atual, o método repaint atualizará a o frame que a thread tá rodando, e o setSleep setará o tempo que a thread deve executar cada iteração.
Dá uma lida nesse material… (bem rapido e objetivo) e depois avalia teu código novamente… certamente você irá entender tudo que foi feito ali… e vai poder trabalhar com Threads numa boa.
Muito obrigado mesmo, me ajudou com sua resposta curta e objetiva , muito obrigado , mais no caso da implementação em um sistema em um projeto já pronto, com metodos já pronto, aonde devo inserir este codigo? eu já coloquei a interface RUNNABLE, mais o codigo coloco aonde? antes ? depois? dos metodos ?
Se você está tentando atualizar a interface gráfica a partir de uma outra thread que não seja o EventDispatcher já adianto que você está fazendo errado. Se a sua intenção é atualizar o desenho de um relógio a cada segundo, por exemplo, então a maneira correta de fazer é instanciar um Timer, ajustar o delay e registrar um EventListener apropriado:
não amigo, eu peguei esse codigo pronto na internet e queria entender o que o codigo está fazendo, então vinnicius me explicou porém eu já estou com um projeto pronto funcionando porem não sei aonde e como implementar o conceito de threads
Você pode implementar threads para chamada de métodos de forma assíncrona, métodos anônimos, geração de telas independentes. Como eu não sei o que exatamente seu código faz, precisaria ver se realmente é necessário criar threads, e se for usar threads é bom dá uma estudada em lambda, pois agiliza muito o trabalho e abstrai bastante coisa, reduzindo o tempo e tamanho do trabalho.
Bom vinicius mais uma vez obrigado, bom eu nao posso mostrar o codigo pois é corporativo da empresa de onde eu estou estagiando, mais basicamente ele funcionar como um gerador de relatorios ele pega a data em que o arquivo foi modificado no banco da empresa, e existe os metodos onde pegar essas informações, porem o programa esta lento quando executar a função de puxar os dados, dai quero implementar o conceito de threads.
Se está acontecendo lentidão na hora de carregar os dados do banco de dados, então threads não vão te ajudar. Threads só ajudam quando a tarefa é paralelizável, e carga de dados não é. Recomendo você estudar melhor a sua query e verificar o plano de execução no banco de dados pra ver se os índices são usados corretamente.