El problema de que varios subprocesos compartan el mismo puntero
Puedes usar el mismo puntero. Pero debe haber exclusión mutua, que es un valor fundamental.
De esta manera, mientras un hilo escribe, otro hilo puede esperar. De lo contrario, se producirá un error de acceso a la memoria o de datos.
Un puntero inteligente es el mismo puntero, excepto que encapsula inteligentemente el puntero cuando se llama. Cuando un hilo llama a un recurso, la variable de conteo automáticamente será +1, -1 cuando se libere y el objeto de puntero se borrará cuando sea 0. Esto evita una situación en la que un subproceso borra un objeto mientras otro subproceso todavía lo está llamando, lo que provoca un error.
Por supuesto, si el mismo objeto no se publica en diferentes subprocesos, se puede omitir el puntero inteligente.