//子程序循环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();
}
}
}