Stellen wir uns vor, ich erstelle eine Flux. Dieser Flux hat während der Erstellung Zugriff auf einige Ressourcen erhalten, und ich möchte, dass eine Bereinigung unter Cancel
/Complete
erfolgt (z. B. Freigabe einiger externer Ressourcen). Schließlich entferne ich alle Zeiger auf diesen Flux, so dass er für die Garbage Collection verfügbar wird. Was passiert bei der Garbage Collection? Erhält mein Flux ein Signal Cancel
, damit es aufräumen kann?Wie Fluxes Müll gesammelt werden?
1
A
Antwort
1
- Es gibt keine besonderen Bereinigungs Mechaniker GC gebunden (die
Flux
kein Signal aufheben erhalten, wenn GCed) - Hinweis dort eine Fabrik Betreiber ist
Flux.using
genannt, der eine Ressource liefert und eine Bereinigung Rückruf erfolgt. Andernfalls könnten SiedoFinally
verwenden, um die Säuberungsaktion - In beiden Fällen durchzuführen, wird dies unter der Annahme, die
Flux
nicht unendlich ist (z. B. einFlux.create
, die nie ruftcomplete
nocherror
) oder abgebrochen wird. - A
Flux
in der Regel auf subscribe initialisiert werden soll, so dass, wenn nichts die Ressourcen wahrscheinlich es abonniert hat nicht initialisiert worden ist (wieder einmal, sofern sie in demFlux.create
Rückruf initialisiert werden, sonst die Leistung kann variieren)
+0
Auch wenn 'Flux' etwas in der Finalisierungsphase erhalten hat, ist es immer noch dumm, sich darauf für das Ressourcenmanagement zu verlassen. –
Verwandte Themen
- 1. Wie Erlang Atome Müll gesammelt werden können
- 2. Können Timer automatisch Müll gesammelt werden?
- 3. Protokollierung, wenn Objekte Müll gesammelt werden
- 4. Warum wird dieser Müll gesammelt?
- 5. Sind diese Delegierten Müll gesammelt?
- 6. Picasso Ziel wurde Müll gesammelt
- 7. Service wird nie Müll gesammelt
- 8. Großer Speicherbrocken nicht Müll gesammelt
- 9. Delegierten nicht bekommen Müll gesammelt
- 10. Müll gesammelt Cache über Javascript WeakMaps
- 11. Warum werden Silverlight ContentControls nicht als Müll gesammelt?
- 12. Ermitteln, ob ein Objekt Müll gesammelt wurde
- 13. Swing Timer ist kein Müll gesammelt
- 14. Java Thread Müll gesammelt oder nicht
- 15. Wird Objective-C auf Linux-Müll gesammelt?
- 16. Wie werden anonyme Objekte in JavaScript gesammelt?
- 17. Castle Windsor: Wird meine vorübergehende Komponente Müll gesammelt?
- 18. Was passiert, wenn eine Scala "Future" Müll gesammelt wird?
- 19. In Java wird Permanent Generation Speicherplatz Müll gesammelt?
- 20. Verwirft Haskell einen Funken, wenn der Thunk Müll gesammelt wird?
- 21. Instanzen, die nur von 'bound_this' referenziert werden, werden nicht als Müll gesammelt
- 22. Wie kann ich einen bestimmten Agenten in Clojure stoppen? Wann werden ihre Staaten Müll gesammelt?
- 23. Muss ich einen Betreff ausfüllen, damit dieser Müll gesammelt wird?
- 24. Im Frühling Batch ThreadPoolTaskExecutor Referenzen sind nicht Müll gesammelt
- 25. Web-Audio MediaElementSource-Knoten wird nicht als Müll gesammelt
- 26. Sind goroutines Müll zusammen mit ihren Kanälen gesammelt?
- 27. Werden ES6 globale Symbole Garbage gesammelt?
- 28. OutOfMemoryError - warum kann ein wartender Thread nicht als Müll gesammelt werden?
- 29. JSF: Mojarra vs. OmniFaces @ViewScoped: @PreDestroy aufgerufen aber Bean kann nicht Müll gesammelt werden
- 30. Erstellt die Zuweisung eines neuen Zeichenfolgenwerts Müll, der gesammelt werden muss?
Es ist immer besser, sich nicht auf GC zu verlassen, um Aufräumarbeiten durchzuführen: Sie können nicht garantieren, dass Ihr Objekt jemals gesammelt wird, da GC das Sammeln unbegrenzt aufschieben kann, solange verfügbarer Speicher vorhanden ist. –