/* Page prose (fr) */
"SerialVsConcurrent" = "# Série vs. concurrent: ordre et chevauchement\n\nToute file est soit **en série**, soit **concurrente**, et cette différence est la chose la plus importante à comprendre au sujet des files.\n\n* Une **file en série** exécute une closure à la fois, jusqu'au bout, dans l'ordre où tu les as ajoutées (FIFO). Deux de ses tâches ne se chevauchent jamais. Un barista, un ticket à la fois.\n* Une **file concurrente** peut exécuter plusieurs de ses closures en même temps, sur plusieurs threads. Elle les *démarre* dans l'ordre, mais elles peuvent se terminer dans n'importe quel ordre. Plusieurs baristas attrapant des tickets sur le même rail.\n\nLa file principale est en série. Les files globales sont concurrentes. Une file personnalisée est en série à moins que tu n'optes pour la concurrence avec `attributes: .concurrent`.\n\nVoici une file personnalisée **en série** qui garde un ordre strict:\n\n```swift\n// Serial by default: one order finished before the next starts.\nlet counter = DispatchQueue(label: \"coffee-bar.serial\")\n\nfor order in 1...4 {\n    counter.async {\n        Thread.sleep(forTimeInterval: 0.2)  // brewing time\n        print(\"Served order #\\(order)\")\n    }\n}\n```\n\nExécute cela tout seul et les commandes s'impriment toujours `1, 2, 3, 4`, dans cet ordre, à chaque fois. Une file en série est une promesse: les tâches s'exécutent l'une après l'autre, dans l'ordre où elles ont été soumises.\n\nMaintenant, exécute les mêmes quatre commandes sur une file **concurrente** ci-dessous.";
"SerialVsConcurrent-2" = "**Observe l'exécution:** les numéros de commande sortent **en désordre**: peut-être `3, 1, 4, 2` cette fois, autre chose la prochaine. Ils *ont démarré* dans l'ordre mais se sont exécutés en parallèle et se sont terminés une fois leur temps de préparation aléatoire écoulé. Ce non-déterminisme est réel: exécute-le quelques fois et tu verras des ordres différents. Si ton code dépend un jour de l'ordre dans lequel les tâches concurrentes se terminent, c'est un bug qui ne demande qu'à arriver.\n\n* callout(Essaie): Exécute-le trois fois de suite. Obtiens-tu jamais `1, 2, 3, 4`? Maintenant, supprime `attributes: .concurrent` et exécute-le trois fois de plus.\n\n[Précédent](@previous)  |  page 5 sur 9  |  [Suivant: Le voyage retour: reviens vers le principal](@next)";
