Maison > Java > javaDidacticiel > Pourquoi System.out.println() et System.err.println() ne sortent-ils pas dans l'ordre dans lequel ils sont appelés ?

Pourquoi System.out.println() et System.err.println() ne sortent-ils pas dans l'ordre dans lequel ils sont appelés ?

Mary-Kate Olsen
Libérer: 2024-12-15 00:47:10
original
362 Les gens l'ont consulté

Why Doesn't System.out.println() and System.err.println() Output in the Order They Are Called?

System.out.println et System.err.println Ordre de sortie

Lors de l'utilisation de System.out.println() et System.err .println(), il est crucial de noter qu’il s’agit de flux de sortie distincts qui peuvent se comporter de manière imprévisible. Comme vous l'avez souligné, les résultats de ces flux peuvent ne pas être imprimés dans la séquence invoquée.

Pour comprendre pourquoi cela se produit, considérez que ces flux utilisent des mécanismes de mise en cache. Lors de l'écriture dans ces flux, les données sont temporairement stockées dans un tampon. Le vidage du tampon déclenche la sortie réelle vers la console. Cependant, le timing des vidages diffère entre System.out et System.err.

En règle générale, les flux de sortie sont vidés périodiquement ou après une période d'inactivité. Ce comportement peut conduire à l'ordre de sortie observé dans lequel les instructions System.out apparaissent consécutivement, suivies par les instructions System.err de la même manière.

Pour résoudre ce problème, vous pouvez explicitement vider les tampons de sortie à l'aide de System.out. .flush() et System.err.flush() dans la boucle. Cela garantit que chaque écriture déclenche un vidage immédiat, produisant la sortie alternative souhaitée de "out" et "err" comme prévu.

Comprendre la mise en cache et le vidage des flux est essentiel pour gérer efficacement la sortie dans les programmes Java, en évitant les comportements inattendus. et assurer une sortie de console fiable.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal