recherche

Maison  >  Questions et réponses  >  le corps du texte

java - new了2个Thread,为什么不是交叉打印?

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 
PHPzPHPz2802 Il y a quelques jours1504

répondre à tous(13)je répondrai

  • 阿神

    阿神2017-04-18 10:29:18

    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

    répondre
    0
  • 巴扎黑

    巴扎黑2017-04-18 10:29:18

    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

    répondre
    0
  • 高洛峰

    高洛峰2017-04-18 10:29:18

    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

    .

    répondre
    0
  • Annulerrépondre