Если вы ожидаете обоих из них, просто подождите один из них с тайм-аутом в 4 часа, затем дождитесь другого с тем, сколько времени осталось.Как вы определяете, что вам решать - я, вероятно, отработаю желаемое время end на основе текущего времени перед первым вызовом awaitTermination
, а затем выясню оставшееся время на основе разницымежду этим и текущим временем.
Из документации не ясно, что произойдет, если вы перейдете в отрицательное время - вам, вероятно, следует это изучить и потенциально принять меры предосторожности (например, если первый вызов заканчивается в ровно тайм-аут, и в итоге вы вычисляете второй тайм-аут через миллисекунду.)