Send y Sync

¿Cómo sabe Rust que debe prohibir el acceso compartido entre hilos? La respuesta está en dos traits:

  • Send: un tipo T es Send si es seguro mover un T entre los límites de un hilo.
  • Sync: un tipo T es Sync si es seguro mover un &T entre los límites de un hilo.

Send y Sync son traits inseguros. El compilador los derivará automáticamente a tus tipos siempre que solo contengan los tipos Send y Sync. También puedes implementarlos de forma manual cuando sepas que es válido.

  • Se podría pensar en estos traits como marcadores que indican que el tipo tiene ciertas propiedades de seguridad en hilos.
  • Se pueden utilizar en las restricciones genéricas como traits normales.