设计性实验报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

PAGE

PAGE1

设计性实验报告

专业:年级/班级:2010—2011学年第二学期

课程名称

Java程序设计

指导教师

姓名

学号

实验地点

实验时间

项目名称

用多线程实现排队买票

实验类型

设计性

实验目的

让学生掌握怎样处理多线程中的同步问题,学会使用wait()、notify()和notifyAll()方法。

实验仪器或设备

一台兼容机

总体设计(设计原理、设计方案及流程等)

设计原理

模拟5个人排队买票。售票员只有1张五元的钱,电影票五元钱一张。五个人的排队顺序是:张王李赵孙。张拿1张二十元的人民币买2张票,王拿1张二十元的人民币买1张票,李拿1张十元的人民币买1张票,赵拿1张十元的人民币买2张票,孙拿1张五元的人民币买1张票。要求售票员按如下的顺序找赎:

二十元买2张票,找零:1张十元:不许找零:2张五元。

二十元买1张票,找零:1张十元,1张五元;不许找零:3张五元。

十元买1张票,找零:1张五元。

实验步骤(包括主要步骤、代码分析等)

classTicketSeller{

intfiveNumber=1,tenNumber=0,twentyNumber=0;

publicsynchronizedvoidsellTicket(intreceiveMoney,intbuyNumber){

if(receiveMoney==5){

fiveNumber=fiveNumber+1;

System.out.printf(\n%s给我5元钱,这是您的1张入场券,Thread.currentThread().getName());}

elseif(receiveMoney==10buyNumber==2){

tenNumber=tenNumber+1;

System.out.printf(\n%s给我10元钱,这是您的2张入场券,Thread.currentThread().getName());}

elseif(receiveMoney==10buyNumber==1){

while(fiveNumber1){

try{System.out.printf(\n%30s靠边等,Thread.currentThread().getName());

wait();

System.out.printf(\n%30s结束等待\n,Thread.currentThread().getName());}

catch(InterruptedExceptione){}

}

fiveNumber=fiveNumber-1;

tenNumber=tenNumber+1;

System.out.printf(\n%s给我10元钱,找您5元,这是您的1张入场券,Thread.currentThread().getName());

}

elseif(receiveMoney==20buyNumber==1){

while(fiveNumber1||tenNumber1){

try{System.out.printf(\n%30s靠边等,Thread.currentThread().getName());

wait();

System.out.printf(\n%30s结束等待\n,Thread.currentThread().getName());}

catch(InterruptedExceptione){}

}

fiveNumber=fiveNumber-1;

tenNumber=tenNumber-1;

twentyNumber=twentyNumber+1;

System.out.printf(\n%s给我20元钱,找您一张10元和一张5元,这是您的1张入场券,Thread.currentThread().getName());

}

elseif(receiveMoney==20buyNumber==2){

while(tenNumber1){

try{System.out.printf(\n%30s靠边等,Thread.currentThread().getName());

wait();

System.out.printf(\n%30s结束等待\n,Thread.currentThread().getName());}

catch(InterruptedExceptione){}

}

tenNumber=tenNumber-1;

twentyNumber=twentyNumber+1;

System.out.printf(\n%s给我20元钱,找您一张10元,这是您的2张入场券,Thread.currentThread().getN

文档评论(0)

151****1902 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档