L'impression de “Bonjour” et “monde” à plusieurs reprises à l'aide de deux threads en java

Supposons qu'un thread affiche "Bonjour" et une autre " imprime "Monde". Je l'ai fait avec succès pour une fois, comme suit:
package threading;

public class InterThread {

    public static void main(String[] args) {
        MyThread mt=new MyThread();
        mt.start();
        synchronized(mt){
            System.out.println("Hello");
            try {
                mt.wait();
                i++;
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }

    }

}

class MyThread extends Thread{

    public void run(){
        synchronized(this){
        System.out.println("World!");
        notify();
        }
    }
}

Comment puis-je faire pour plusieurs temps de l'impression, disons 5 fois? J'ai essayé de mettre de la boucle autour de la synchronisation de bloc, mais d'aucune utilité.

  • Peut-être vous devriez penser à deux boucles.
  • Peut-être vous devriez penser à utiliser CyclicBarrier.
  • Ce n'est pas garanti pour toujours imprimer Bonjour tout le Monde! - le thread principal peut être interrompu entre mt.start(); et synchronisée(mt)