Send
y Sync
How does Rust know to forbid shared access across threads? The answer is in two traits:
Send
: un tipoT
esSend
si es seguro mover unT
entre los límites de un hilo.Sync
: un tipoT
esSync
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.