首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

标题求解答

2011-11-19 
题目求解答有3个线程:zhangXiao、zhengMing和teacher,其中2线程zhangXiao和zhengMing准备休眠10秒钟后,再分

题目求解答
有3个线程:zhangXiao、zhengMing和teacher,其中2线程zhangXiao和zhengMing准备休眠10秒钟后,再分别输出“老师好!”和“good   morning”。teacher线程在输出5句“上课”后,吵醒休眠的线程:zhangXiao、zhengMing。请编写程序实现以上过程。

[解决办法]
public class Test implements Runnable
{
Thread zhangXiao, zhengMing, teacher;

String lock = new String( " ");

boolean runOk = true;

int count;

public void go()
{
teacher = new Thread(this);
teacher.setName( "teacher ");
teacher.start();

zhangXiao = new ThreadZhangXiao();
zhangXiao.setName( "zhangXiao ");
zhangXiao.start();

zhengMing = new ThreadZhengMing();
zhengMing.setName( "zhengMing ");
zhengMing.start();

}

public static void main(String[] args)
{
new Test().go();
// System.out.println(Thread.currentThread().getName());
}

public void run()
{

while (runOk)
{
count++;
System.out.println( "Class Begins! ");
if (count > = 5)
{
synchronized (zhangXiao)
{
zhangXiao.notify();
runOk = false;
}

synchronized (zhengMing)
{
zhengMing.notify();
runOk = false;
}
}
}
}

class ThreadZhangXiao extends Thread
{
public void run()
{
try
{
synchronized (zhangXiao)
{
while (runOk)
{
zhangXiao.wait();
}
System.out
.println( "zhangXiao says: Good morning, Teacher! ");
}
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
}

class ThreadZhengMing extends Thread
{
public void run()
{
try
{
synchronized (zhengMing)
{
while (runOk)
{
zhengMing.wait();
}
System.out
.println( "zhengMing says: Good morning, Teacher! ");
}
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}

}
}

热点排行
Bad Request.