У меня есть класс, который содержит 5 методов. В определенный момент в программе я хотел бы запустить 2 метода одновременно. Диаграмма ниже иллюстрирует то, о чем я говорю.
После завершения method2 () я хочу, чтобы method3 () и method4 () выполнялись одновременно. Method3 () и method4 (), по сути, делают одно и то же, но имеют изолированные ресурсы и, следовательно, не должны синхронизироваться.
Когда method3 () и method4 () завершатся, я бы хотел, чтобы потоки Aux были уничтожены, а программа вернулась обратно в основной поток. Каков наилучший способ сделать это?
![Image of program threads](https://imgur.com/a/8kuk4sT)
Я попытался вызвать ExecutorService, но, похоже, это создает потоки, которые работают одновременно с основным потоком, а не приостанавливает основной поток.
ExecutorService executorService = Executors.newFixedThreadPool(2);
// method reference introduced in Java 8
executorService.submit(this::method3());
executorService.submit(this::method4());
// close executorService
executorService.shutdown();