Предполагается, что пользователь вызовет Player.close()
для освобождения некоторых критических ресурсов, управляемых собственным кодом, и уничтожения нескольких внутренних потоков Java, созданных для объекта player.Однако пользователь не смог вызвать его, что привело к некоторой утечке ресурсов.Добавление метода Finalize не будет работать, потому что не будет вызван finalize, поскольку внутренние потоки не были уничтожены ...
Как нам справиться с этой ситуацией?
EDIT:
Я посмотрю в фантомную ссылку.Кроме того, не должен ли я завершить эти агрегированные потоки, чтобы объект player стал подходящим для gc?