En général, je suppose que les flux ne sont pas synchronisés, c'est à l'utilisateur de faire le verrouillage approprié. Cependant, des choses comme coutobtenir un traitement spécial dans la bibliothèque standard?
Autrement dit, si plusieurs threads écrivent, coutpeuvent-ils corrompre l' coutobjet? Je comprends que même si synchronisé, vous obtiendrez toujours une sortie entrelacée de manière aléatoire, mais cet entrelacement est-il garanti? Autrement dit, est-il sûr de l'utiliser à coutpartir de plusieurs threads?
Ce fournisseur dépend-il? Que fait gcc?
Important : Veuillez fournir une sorte de référence pour votre réponse si vous dites «oui» car j'ai besoin d'une sorte de preuve de cela.
Ma préoccupation ne concerne pas non plus les appels système sous-jacents, ce sont bien, mais les flux ajoutent une couche de tampon par-dessus.
printfbrille car la sortie complète est écrite stdouten un seul coup; lors de l'utilisation de std::coutchaque maillon de la chaîne d'expression, il serait émis séparément vers stdout; entre eux, il peut y avoir un autre thread d'écriture à stdoutcause duquel l'ordre de la sortie finale est perturbé.