JAVA多线程的实验报告-.doc
文本预览下载声明
深 圳 大 学 实 验 报 告
课程名称: Java程序设计
实验项目名称: 线程
学院: 计算机与软件学院
专业:
指导教师: 谭舜泉
报告人: 学号: 班级: 3班
实验时间: 2012年12月13日
实验报告提交时间: 2012年12月26日
教务部制
一、实验内容:
8.2.3 吵醒休眠的线程
实验代码:
class Shop implements Runnable
{
Thread zhangWorker,wangWorker,boss;
Shop()
{
boss=new Thread(this);//创建boss,Shop对象为boss目标对象
zhangWorker=new Thread(this);
wangWorker=new Thread(this);
zhangWorker.setName(张工);
wangWorker.setName(王工);
boss.setName(老板);
}
public void run()
{
int i=0;
if(Thread.currentThread()==zhangWorker)
{
while(true)
{
try
{i++;
System.out.printf(\n%s已搬运了%d箱苹果\n,zhangWorker.getName(),i);
if(i==3)return;
Thread.sleep(10000);
}//zhangWorker休眠10秒}
catch(InterruptedException e){System.out.printf(\n%s让%s继续工作,boss.getName(),zhangWorker.getName());}
}
}
else if(Thread.currentThread()==wangWorker)
{
while(true)
{
try
{
i++;
System.out.printf(\n%s已搬运了%d箱香蕉\n,wangWorker.getName(),i);
if(i==3)
return;
Thread.sleep(10000);
}
catch(InterruptedException e){System.out.printf(\n%s让%s继续工作,boss.getName(),wangWorker.getName());}
}
}
else if(Thread.currentThread()==boss)
{
while(true)
{
zhangWorker.interrupt();//吵醒zhangWorker
wangWorker.interrupt();
if(!(wangWorker.isAlive()||zhangWorker.isAlive()))
{
System.out.printf(%n%s下班,boss.getName());
return;
}
}
}
}
}
public class ShopExample
{
public static void main(String args[])
{
Shop shop=new Shop();
shop.zhangWorker.start();
shop.wangWorker.start();
shop.boss.start();
}
}
实验截图:
8.2.4 排队买票
实验代码:
cla
显示全部