Corrida entre System.out e System.err em java [duplicado]

Esta pergunta já tem uma resposta aqui:

Java: System.out.println e System.err.println fora de ordem respostas

Por favor, considere este código java:

public class CMain {
    public static void main(String[] args){

        for (int i = 0; i < 10; i++) {
            System.out.println("A");
            System.err.println("B");
        }

    }
}

Por uma rápida olhada no código, alguns de nós podem pensar a saída deve ser a impressão de As e Bs como alternativa. No entanto não é! É uma aparência aleatória de 10 caracteres A e 10 caracteres B. Algo assim

Por que é que? e qual é a solução para que o As e Bs sejam exibidos alternativamente (A B A B A B ...) Antes de fazer essa pergunta, verifiquei várias outras questões semelhantes para solução e não funcionou para o meu caso! Eu trouxe alguns deles aqui:

Sincronização e System.out.println Java: sincronização de saída padrão e erro padrãoJava: System.out.println e System.err.println fora de ordem PS. Estou usando o Eclipse como meu IDE

questionAnswers(3)

yourAnswerToTheQuestion