/* Page prose (fr) */
"ReasoningAboutThreadSafety" = "# Comment raisonner sur la sûreté vis-à-vis des threads\n\nUne liste de vérification que tu peux dérouler dans ta tête, avant même d'appuyer sur **Run**:\n\n* **Trouve l'état mutable partagé.**  \nN'importe quel `var` (une propriété, une variable capturée, une collection) atteignable depuis plus d'une tâche à la fois. Pas d'état partagé *et* mutable, pas de data race. (Immuable, ou non partagé, est automatiquement sûr.)\n* **Demande qui écrit.**  \nSi tout le monde ne fait que lire, tout va bien. Le danger commence avec le premier écrivain concurrent.\n* **Cherche l'intervalle lire-puis-écrire.**  \n`x += 1`, \"vérifier puis agir\", \"lire un dictionnaire puis le mettre à jour\". Tout ce qui lit une valeur et écrit ensuite en se basant dessus a un intervalle qu'une autre tâche peut corrompre.\n* **Nomme la coordination.**  \nPour chaque morceau d'état mutable partagé, désigne la *seule* chose qui sérialise l'accès: une file en série, une barrière, un sémaphore, (plus tard) un actor. Si tu ne peux pas la nommer, suppose qu'il y a une course.\n* **Préfère le cacher.**  \nEnveloppe l'état et sa coordination dans un type (comme `Account` plus tôt) pour que ceux qui l'appellent ne puissent pas toucher à la valeur brute ni oublier de verrouiller.\n\nIci, raisonner l'emporte sur exécuter, parce qu'on ne peut pas faire confiance à l'exécution: une course invisible dans ton éditeur peut être un crash sur l'iPhone plus ancien de quelqu'un.\n\n[Précédent](@previous)  |  page 8 sur 9  |  [Suivant: Récapitulatif](@next)";
