void process(String question){
Callable<ResponseList> callable1 = () -> this.stsCompute question);
Future<ResponseList>task1 = executorService.submit(callable1);
Callable<ResponseList> callable2 = () -> this.dssmCompute(question);
Future<ResponseList>task2 = executorService.submit(callable2);
try{
ResponseList stsResponse = task1.get();
ResponseList dssmResponse = task2.get();
}catch (Exception e){
e.printStackTrace();
}
// Do I need to wait until the first 2 threads complete?
processResponse(stsResponse, dssmResponse);
}
В этом методе "process" у меня есть два дополнительных потока 'callable1' и 'callable2' для одновременного выполнения. Я хочу убедиться, что только после завершения этих двух задач метод в главном потоке 'processResponse ()' может начать выполняться.
В таком случае мне нужно добавить какой-либо дополнительный элемент управления, чтобы обеспечить порядок выполнения, достаточно ли он уже хорош? Если нет, как заставить этот контроль произойти?