¿Cuáles son las diferencias entre los punteros compartidos (como boost :: shared_ptr o el nuevo std :: shared_ptr) y los métodos de recolección de basura (como los implementados en Java o C#)? Tal como lo entiendo, los punteros compartidos hacen un seguimiento de cuántas veces las variables apuntan al recurso y automáticamente destruyen el recurso cuando el recuento llega a cero. Sin embargo, tengo entendido que el recolector de basura también administra los recursos de la memoria, pero requiere recursos adicionales para determinar si todavía se está haciendo referencia a un objeto y no necesariamente destruye el recurso de inmediato.Recolección de basura vs. punteros compartidos
¿Estoy en lo correcto en cuanto a mis suposiciones y existen otras diferencias entre el uso de recolectores de basura y punteros compartidos? Además, ¿por qué alguien utilizaría un recolector de basura sobre un puntero compartido si realizan tareas similares pero con distintas cifras de rendimiento?
El uso de punteros compartidos ** es ** una técnica de recolección de basura. Muchos recolectores de basura implementan, al menos como primer paso, el recuento de referencias. –