Eu gostaria de saber se é possível criar algo semelhante a uma thread, porém com um método. Bom, eu nunca cheguei a mexer com threads, mesmo sabendo do que se trata, e agora me deparei com um problema de thread e não sei como resolver.
Meu problema é que eu tenho um método chamado “buildDadosPrecoJusto()”, esse método vai fazer algumas requisições ao banco e carregar algumas imagens, a quantidade pode variar dependendo do número de cadastros. Eu preciso esperar esse método terminar de executar para então continuar o programa.
Pesquisando eu encontrei os métodos para mexer com threads: wait() e join(), mas pelo que notei ambos só trabalham com objetos.
O método é muito grande, por isso acho que não vale apena postar, mas seria mais ou menos assim:
public class MinhaClasse {
main() {
buildDadosPrecoJusto();
}
private void buildDadosPrecoJusto() {
// Minha query que busca as imagens
List<MetodoAvaliacaoPrecoJusto> precoJustoList = new JPAQuery<MetodoAvaliacaoPrecoJusto>(jpaApi.em()).from(QMetodoAvaliacaoPrecoJusto.metodoAvaliacaoPrecoJusto)
.where(QMetodoAvaliacaoPrecoJusto.metodoAvaliacaoPrecoJusto.avaliacao().id.eq(avaliacao.getId()))
.fetch();
for (MetodoAvaliacaoPrecoJusto precoJusto : precoJustoList) {
try {
// Pego as imagens
} catch(Exception e) {
throw new ApplicationException("Internal Error");
}
}
}
Dês de já, agradeço.