/* Page prose (es) */
"ReasoningAboutThreadSafety" = "# Cómo razonar sobre la seguridad entre hilos\n\nUna lista de comprobación que puedes ejecutar en tu cabeza, antes de siquiera pulsar **Run**:\n\n* **Encuentra el estado mutable compartido.**  \nCualquier `var` (una propiedad, una variable capturada, una colección) alcanzable desde más de una tarea a la vez. Sin estado compartido *y* mutable, no hay carrera de datos. (Lo inmutable, o lo no compartido, es seguro automáticamente.)\n* **Pregunta quién escribe.**  \nSi todos solo leen, estás bien. El peligro empieza con el primer escritor concurrente.\n* **Busca el hueco de leer-y-luego-escribir.**  \n`x += 1`, \"comprobar y luego actuar\", \"leer un diccionario y luego actualizarlo\". Cualquier cosa que lee un valor y luego escribe basándose en él tiene un hueco que otra tarea puede corromper.\n* **Nombra la coordinación.**  \nPara cada porción de estado mutable compartido, señala la *única* cosa que serializa el acceso: una cola serial, una barrera, un semáforo, (más adelante) un actor. Si no puedes nombrarla, supón que hay carrera.\n* **Prefiere ocultarlo.**  \nEnvuelve el estado y su coordinación en un tipo (como `Account` antes) para que quienes lo llaman no puedan tocar el valor crudo ni olvidarse de bloquear.\n\nAquí razonar supera a ejecutar, porque no se puede confiar en ejecutar: una carrera invisible en tu editor puede ser un fallo en el iPhone más antiguo de otra persona.\n\n[Anterior](@previous)  |  página 8 de 9  |  [Siguiente: Resumen](@next)";
