文档详情

JAVA多线程的实验报告-.doc

发布:2017-02-02约5.71千字共8页下载文档
文本预览下载声明
深 圳 大 学 实 验 报 告 课程名称: 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
显示全部
相似文档