Pourquoi désactiver le tampon de sortie standard en multithreading?

J’essaie d’apprendre le multithreading et j’ai une question simple. Sur la plupart des exemples que je trouve, le tampon de sortie standard est désactivé avant de permettre à plusieurs threads de l’utiliser avec:

setbuf (stdout, NULL);

Pourquoi? Les codes sont identiques si je supprime cette ligne!

Il est possible qu’ils n’impriment pas la même chose – lorsque la sortie est mise en mémoire tampon, elle ne peut pas être affichée immédiatement, ce qui peut modifier l’ordre dans lequel les lignes sont sorties entre les threads.

La désactivation de la mise en mémoire tampon vous permet de savoir dans quel ordre les instructions ont été exécutées.

Cela empêche la mise en mémoire tampon, ce qui signifie que vous avez une meilleure idée du moment où différents threads ont fait quoi. En d’autres termes, vous êtes plus susceptible de voir les écritures sur stdout lorsqu’elles se produisent plutôt qu’après l’écriture d’une quantité de données sur stdout .

Il est également utile de le faire lorsque vous raccordez la sortie d’une application de console à une interface utilisateur.