- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
最近下载
- 七上历史早背晚默小纸条.pdf VIP
- 《住院患者身体约束的护理》团体标准解读.pptx VIP
- 安装施工员工作职责内容(32篇).docx VIP
- 气凝胶隔热保温纳米涂料-气凝胶基础材料项目可行性研究报告.doc VIP
- 中心学校校园安全治本攻坚三年行动实施方案(2024-2026).pdf VIP
- 电动升降式高杆灯安装使用说明书.doc VIP
- GB50257-2014 电气装置安装工程 爆炸和火灾危险环境电气装置施工及验收规范.pdf VIP
- 【备战25年高考数学】解答题06 10类导数答题模板(原卷版) (2).docx VIP
- 《思想道德与法治》课件——专题6 遵守道德规范 锤炼道德品格.pptx VIP
- 【备战25年高考数学】解答题01 7类解三角形答题模板(解析版).docx VIP
文档评论(0)