Send y Sync

How does Rust know to forbid shared access across threads? The answer is in two 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.