//子程序循环10次,接着主程序循环100次,然后子程序又循环10次,主程序循环100次,这样循环50次。 public class ThreadTest { public static void main(String[] args) { MyThread mythread = new MyThread(); new Thread(new Runnable()//传递给Thread的是一个实现了Runnable接口的匿名内部类的对象的引用 { @Override public void run() { for(int i = 1; i <= 50; i ++) { mythread.subThread(i); } } }).start(); new Thread(new Runnable() { @Override public void run() { for(int i = 1; i <= 50; i ++) { mythread.mainThread(i); } } }).start(); } } class MyThread { public synchronized void subThread(int j) { for(int i = 1; i <= 10; i ++) { System.out.println("子线程"+j+":循环"+i+"次"); } notifyAll(); try { if(j!=50) { wait(); } } catch (InterruptedException e) { e.printStackTrace(); } } public synchronized void mainThread(int j) { for(int i = 1; i <= 100; i ++) { System.out.println("主线程"+j+":循环"+i+"次"); } notifyAll(); try { if(j!=50) { wait(); } } catch (InterruptedException e) { e.printStackTrace(); } } }