여러 Future는 하나의 마감 시각에서 남은 시간만 나눠 쓴다

각 get마다 timeout을 새로 시작하면 전체 응답 상한이 작업 수만큼 늘어납니다.

deadline

요청 시작 + 예산

next Future

수집 대상

remaining

deadline - now

get

remaining만 대기

classify

값·실패·timeout

Future가 남고 전체 예산이 양수면 계속

핵심: 남은 시간이 0이면 뒤 작업을 기다리지 않고 취소·부분 결과 정책으로 전환합니다.