2012-12-01 2 views
4

가능한 중복 :
Java: System.out.println and System.err.println out of orderEclipse에서 System.err이 System.out보다 느린 이유는 무엇입니까?

왜이 코드

System.err.println("err"); 
    System.out.println("out"); 

인쇄

이클립스 콘솔에
out 
err 

?

UPDATE

내가 명령 줄에서 실행하는 경우 올바른 순서로 동일한 코드가 인쇄. 내가

System.err.println("err"); 
    Thread.sleep(5); 
    System.out.println("out"); 

그것은 이클립스에서 제대로 인쇄로 해결하는 경우

UPDATE

너무

답변

4

이 느린 아니다; 그것들은 순서대로 flushed 일 필요는 없습니다.

System.err.println("err"); 
System.err.flush(); 
System.out.println("out"); 

이 좋아, 그래서 이것은 알려진 이클립스 버그가 나타납니다 : 당신은 그러나, 문제를 해결할 수 https://bugs.eclipse.org/bugs/show_bug.cgi?id=32205

+0

그러나에 println도 플러시()를 호출합니다. PrintStream.println을 참조하십시오. –

+0

당신의 (read : Eclipse의)'println()'구현이 실제로'flush()'를 호출하지 않는다고 확신합니다. –

+0

그럴 수 있습니다. 나는 그것을 디버깅했다. java.io.PrintStream.newLine()은 flush()를 호출한다. –