- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java多线程程序设计概要
实验报告
课程名称 面向对象程序设计 实验名称 实验七 多线程程序设计 日期 2016-11-11 学生学号 姓名 班级 实验目的:
通过本次实验,要求学生能进一步掌握多线程程序设计的操作方法。 实验条件:
电脑一台、能上网查阅资料。 1.输入例7.9的发牌程序源代码,理解代码的真正含义。并尝试对程序进行如下修改:
(1)修改发牌程序,取消取牌程序之间的次序关系,运行结果会怎样?
(2)将玩牌人数修改为3人,运行结果会怎样?
(3)修改发牌线程,发送由1~52组成的一个随机数序列。
源代码:
import java.util.*;
import java.awt.*;
import javax.swing.*;
class CardBuffer //加互斥锁的缓冲区
{
private int value; //共享变量,临界资源
private boolean isEmpty=true; //value是否空的信号量
private int order=0; //信号量,约定取牌线程的次序
private int number; //人数
CardBuffer(int number)
{
this.number = number;
}
synchronized void put(int i)
{
// if (!this.isEmpty) //运行错,为什么??
while (!this.isEmpty) //当value不空时,等待
try
{
this.wait(); //等待
}
catch(InterruptedException ex) {}
this.value=i; //当value空时,value获得值
this.isEmpty=false; //设置value为不空状态
this.notifyAll(); //唤醒所有其他等待线程
}
synchronized int get(int order) //order是取牌线程约定的次序
{
while (isEmpty) //取消取牌线程之间的次序关系,看看会怎样。
while (this.isEmpty || (this.order!=order)) //当value空或取牌次序不符时等待
try
{
this.wait();
}
catch(InterruptedException ex) {}
this.isEmpty=true; //设置value为空状态,并返回值
this.notifyAll();
this.order = (this.order+1) % this.number; //加1使取牌次序轮转
return this.value;
}
}
class SendCardThread extends Thread //发牌线程类
{
private CardBuffer cardbuffer; //存放牌的缓冲区(加互斥锁)
private int cardMax;
//cardMax指定最大牌值,牌值为1~cardMax
private int number; //人数
//构造方法,cardbuffer指定存放牌的缓冲区;cardMax指定最大牌值,牌值为1~cardMax;number指定人数
public SendCardThread(CardBuffer cardbuffer, int cardMax, int number)
{
this.cardbuffer
您可能关注的文档
- iTV电视空中课堂信息化解决方案通用版97-2003(合肥电信巢湖一中).doc
- IT项目管理实践V40.ppt
- IRC5_BASIC.ppt
- IWAY执行标准1.ppt
- IWANTTODEPOSITE银行存取款用语.pptx
- it.用法公开课.ppt
- i第九周安全通信协议(第17、20章).ppt
- j2ee应用开发.doc
- Java-EE期末习题集.doc
- Java8CompletableFuture.doc
- 建设工程质量安全管理标准化图集(安全篇2024版)ppt230页.pptx
- 《油气储存企业安全风险评估细则(2025年修订)》解读.pptx
- 2025年《危大工程专项施工方案严重缺陷清单专题培训》ppt120页_1230.pptx
- 中建分部分项检验批划分方案、资料目录策划编制要点ppt75页.pptx
- 某项目智慧工地示范项目应用成果介绍75页_5843.pptx
- 2025年中国风筝无人机LED夜光编队编程师应聘面试模拟题及答案.doc
- 2025年中国鞍钢集团招聘笔试题库附答案.doc
- 2025年中国鞍钢集团招聘面试预测题及答案.doc
- 临床器械实验培训试题及答案2025年版.docx
- 中石化《两个责任》解读分析.ppt
文档评论(0)