Processamento de gráfico direcionado em Java

Estou procurando implementar um aplicativo Java que calcule um conjunto de tarefas a serem executadas. As tarefas terão dependências entre si, formando um gráfico direcionado. Existe um SDK ou algoritmo existente (de preferência em Java) por aí que me ajudará:

Defina o gráfico das tarefas Verifique se não há dependências cíclicas no gráficoExecute as tarefas no gráfico usando um pool de threads

passo 3 é a parte mais importante. Preciso executar as tarefas de maneira paralela para obter o desempenho máximo e garantir que uma tarefa não seja executada antes de suas dependência

questionAnswers(4)

yourAnswerToTheQuestion