Pool de encadeamento único versus um conjunto de encadeamentos por tarefa

Eu quero usar a simultaneidade em Java para fazer solicitações a uma API online, baixar e analisar os documentos de resposta e carregar os dados resultantes em um banco de dados.

É padrão ter um pool de threads no qual cada thread solicita, analisa e carrega? Em outras palavras, apenas uma classe implementaRunnable. Ou é mais eficiente ter, digamos, três conjuntos diferentes de encadeamentos, com o primeiro conjunto de encadeamentos fazendo as solicitações e empurrando-as para uma fila, o segundo conjunto de encadeamentos pesquisando a partir da primeira fila, analisando e empurrando os dados analisados? para uma segunda fila e, finalmente, o terceiro pool pesquisando os dados da segunda fila e carregando no banco de dados? Neste caso, eu escreveria três classes diferentes que implementamRunnable.

questionAnswers(3)

yourAnswerToTheQuestion