title: Is multi-thread output from System.out.println interleaved
body: <p>If multiple threads call System.out.println(String) without synchronization, can the output get interleaved? Or is the write of each line atomic? The <a href="http://docs.oracle.com/javase/6/docs/api/java/io/PrintStream.html#println(java.lang.String)" rel="noreferrer">API</a> makes no mention of synchronization, so this seems possible, or is interleaved output prevented by buffering and/or the VM memory model, etc.?</p>
  
  <p>EDIT:</p>
  
  <p>For example, if each thread contains:</p>
  
  <pre><code>System.out.println("ABC");
  </code></pre>
  
  <p>is the output guaranteed to be:</p>
  
  <pre><code>ABC
  ABC
  </code></pre>
  
  <p>or could it be:</p>
  
  <pre><code>AABC
  BC
  </code></pre>