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