특정 끝점에 대한 요청에 대한 응답으로 많은 백그라운드 작업자 스레드를 생성하는 웹 응용 프로그램이 있습니다. 근로자들의 상태를보다 투명하게 볼 수 있도록, 나는 근로자들이 이벤트를 게시 할 수있는 이벤트 버스를 추가했다. 이벤트는 시간이 지남에 따라 각 작업자의 상태를 추적하여 맵에 푸시됩니다. 주기적으로 맵은 스냅 샷되고보다 영구적 인 위치로 푸시됩니다. 여기서 스냅 샷은 요청 토큰을 통해 요청과 연관됩니다.Google Guava EventBus 객체는 언제 가비지 수집됩니까?
각 요청에 자체 이벤트 버스를 제공하는 것은 분명 매력적입니다. 그런 다음 각 요청은 자체 맵을 얻습니다. 요청이 완료되고 최종 스냅 샷이 푸시되면 맵과 이벤트 버스는 범위를 벗어나 가비지 수집됩니다.
적어도 그것이 이론입니다. 그러나 내가 이야기 한 일부 사람들은 이벤트 버스가 설정 중에 다른 참조를 생성하기 때문에 이벤트 버스가 명시적인 참조가 범위를 벗어나는 경우에도 수집되지 않을 것이라고 제안했습니다. 나는 경험 많은 Java/Guava 실무자의 관점에 정말로 감사 할 것입니다.
문서에서 그와 같은 것을 찾을 수 없습니다 .... : - | 당신의 출처는 믿을만한가요? – Thihara
이벤트가 처리 되 자마자 스레드가 해제 된 것도 보았습니다. 그것에 대한 의견을 보내 주시면 감사하겠습니다. – RohanRasane