java - new了2个Thread,为什么不是交叉打印?
PHPz
PHPz 2017-04-18 10:27:18
0
13
1508
public static void main(String[] args){

        new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i=0; i<10; i++){
                    System.out.print(i+" ");
                }
            }
        }).start();

        new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i=0; i<10; i++){
                    System.out.print(i+" ");
                }
            }
        }).start();
    }

输出结果如下:

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 
PHPz
PHPz

学习是最好的投资!

répondre à tous(13)
阿神

1. Pour contrôler l'ordre des verrous de thread afin de rester cohérent, vous pouvez utiliser les verrous flexibles du package java.util.concurrent.locks
2. Utilisez les classes atomiques de java.util.concurrent.atomic forfait

巴扎黑

L'exécution du CPU est trop rapide. Le premier thread a fini de s'exécuter rapidement. Le deuxième thread n'a peut-être pas encore été créé. Essayez de changer la valeur de la boucle à 1000. Vous devriez pouvoir voir l'effet, mais il. ne fonctionnera certainement pas. Ce sera intersectionnel et déroutant

小葫芦

Les tâches d'exécution du CPU sont exécutées dans le désordre et la synchronisation entre plusieurs threads n'est pas garantie. Si vous souhaitez garantir l'ordre, un contrôle de synchronisation est requis

.
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal