Tant que vous ne modifiez pas la OutputStream via le Système.sera il est thread-safe.
Si elle est thread-safe, vous pouvez avoir de nombreux threads écrit au Système.tels que
Thread-1
System.out.println("A");
System.out.println("B");
System.out.println("C");
Thread-2
System.out.println("1");
System.out.println("2");
System.out.println("3");
Peut lire
1
2
A
3
B
C
Parmi d'autres combinaisons.
Donc, pour répondre à votre question.
Lorsque vous écrivez à Systme.- il acquiert un verrou sur la OutputStream exemple - il va alors écrire dans le tampon et rincer immédiatement.
Une fois qu'il libère le verrou de la OutputStream est vidé et écrite. Il n'y aurait pas un cas où vous auriez des différentes chaînes rejoint comme 1A 2B
Edit:
Pour répondre à votre édition - Qui ne serait pas le cas avec le Système.out.println. Depuis le PrintStream synchronise l'ensemble de la fonction qu'il va remplir la mémoire tampon, puis le rincer atomiquement. Tout nouveau thread à venir en auront désormais un tampon frais pour travailler avec.