У меня есть задание. Мне нужно создать 4 службы A, B, C и D. У каждой службы должен быть свой поток. Служба должна запускаться только после того, как запущены все службы, от которых она зависит, и служба должна останавливаться только после того, как все зависящие от нее службы остановлены. Службы должны запускаться и останавливаться параллельно, когда это возможно. Службы B и C зависят от службы A. Служба D зависит от службы B. Чтобы запустить службу D, необходимо запустить службы A и B. Чтобы остановить службу A, сначала необходимо остановить службы B, D и C. Службы B и C можно запустить в параллельно сразу после начала А. И наоборот, они могут останавливаться параллельно.
Есть ли у вас какие-либо предложения, как решить эту проблему? Я пытаюсь сделать это последние 10 дней... Могу ли я сделать это с помощью CountDownLatch или чего-то еще? Любой совет ценен.