Comment puis-je faire simultanément threads en cours d'exécution?

Je veux avoir deux threads s'exécutant deux différentes instances de classes différentes et je les veux pour exécuter la commande exécuter en même temps.

J'ai fait une pratique de classe pour illustrer le problème que je vais avoir.
Un coureur de compte vers l'avant, les autres chefs d'accusation à l'envers.

public class testCount {

    public static void main(String args[]) {
        testCount countCompetition = new testCount();
        countCompetition.run();
    }

    public void run() {
        (new Thread(new racer1())).start();
        (new Thread(new racer2())).start();
    }

    public class racer1 implements Runnable {
        public void run() {
            for(int x = 0; x < 100; x++) {
                System.out.println(x);
            }
        }
    }
    public class racer2 implements Runnable {
        public void run() {
            for(int y = 100; y > 0; y--) {
                System.out.println(y);
            }
        }
    }
}

Mes résultats

1
2
... All the way to 100
100
100
99
... All the way back down
1

Ce que je veux

1
100
2
99
3
98

Ils n'ont pas besoin d'être comme ça, mais ils n'ont besoin de travailler en même temps, au lieu de les uns après les autres.
Tous les conseils, des conseils ou des extraits de code serait grandement apprécié.

OriginalL'auteur James | 2013-04-19