2019JAVA第七次实验报告
Java实验报告
班级 计科二班 学号 20188442 姓名 吴怡君
完成时间 2019.10.25
评分等级
实验任务详情:
完成火车站售票程序的模拟。
要求:
(1)总票数1000张;
(2)10个窗口同时开始卖票;
(3)卖票过程延时1秒钟;
(4)不能出现一票多卖或卖出负数号票的情况。
实验代码
package Domon6;
public class ticket implements Runnable {
private int tickets=1000;
public void run() {
while(true) {
if(this.Tickettest()!=1) {
System.out.println(Thread.currentThread().getName()+"票已卖完");
return;
}
try {
Thread.yield(); //这里需要礼让给其它线程,防止一个线程独占
Thread.sleep(1000); //等待一秒钟
}catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public synchronized int Tickettest() { //同步所有窗口,以防出现一票多买与负数
if(this. tickets>=1) {
this. tickets--;
System.out.println(Thread.currentThread().getName()+"购票成功!"+"剩余票数"+this. tickets);
return 1;
}
return 0;
}
}
package Domon6;
public class test {
public static void main(String[] args) {
ticket t=new ticket();
for(int i=0;i<10;i++) { //由于程序运行时,是从Thread-0开始,所以可以用for循环实现
new Thread(t).start();
}
}
}
实验结果截图


小题总结
这是一道简单的模拟买票的一道题目,主要是运用多线程来实现,多线程可以有两种方法,直接继承Thread父类,另一种就是我写的这种Runnable,这个相比前一个就有一个很好的优点,后者可以同步,但是前者不可以,其他的都是书上的简单方法,总体来说,要理解这些关系就很简单,感觉还行。
课程总结
这周主要学习的知识点是关于线程和他的一些相关方法,首先线程分为四五个状态。1:创建状态、2:就绪状态、3:运行状态、4:堵塞状态、5:死亡状态,然后CPU根据线程的优先级进行调配。然后就是了解了一些简单的的方法,线程启动,线程的强制运行,线程的休眠,线程的优先级,线程的礼让等等。其中通过setPriority()方法可以设置一个线程的优先级。当然后面还有些老师谈到的一些知识,线程的生命周期,其实大多方法在JAVA中都已经定义好了,所以对于这些知识要有个大致的了解。继续努力。
2019JAVA第七次实验报告的更多相关文章
- 第七周&实验报告五
实验四 类的继承 •实验目的 •理解抽象类与接口的使用: •了解包的作用,掌握包的设计方法. •实验要求 •掌握使用抽象类的方法. •掌握使用系统接口的技术和创建自定义接口的方法. •了解 Java ...
- 20165337第七周实验报告《Java面向对象程序设计》
实验报告封面 实验内容及步骤 实验一.实现百分制成绩转成"优.良.中.及格.不及格"五级制成绩的功能 代码 public class MyUtil{ public static S ...
- 2019JAVA第十一次实验报告
#Java实验报告 班级 计科二班 学号 20188442 姓名 吴怡君 完成时间 2019.11.22 评分等级 简易记事本 实验代码 package Domon10; import java.aw ...
- 2019JAVA第六次实验报告
Java实验报告 班级 计科二班 学号 20188442 姓名 吴怡君 完成时间 2019.10.18 评分等级 实验四 类的继承 实验目的 理解异常的基本概念: 掌握异常处理方法及熟悉常见异常的捕获 ...
- 2019JAVA第五次实验报告
Java实验报告 班级 计科二班 学号 20188442 姓名 吴怡君 完成时间2019/10/11 评分等级 实验四 类的继承 实验目的 理解抽象类与接口的使用: 了解包的作用,掌握包的设计方法. ...
- 2019JAVA第四次实验报告
JAVA实验报告 班级 计科二班 学号 20188442 姓名 吴怡君 完成时间 2019/9/29 评分等级 实验四 类的继承 1.实验目的 掌握类的继承方法: 变量的继承和覆盖,方法的继承.重载和 ...
- 2019JAVA第三次实验报告
Java实验报告 班级 计科二班 学号 20188442 姓名 吴怡君 完成时间 2019.9.24 评分等级 实验三 String类的应用 一.实验目的 掌握类String类的使用: 学会使用JDK ...
- 2019JAVA第八次实验报告
班级 计科二班 学号 20188442 姓名 吴怡君 完成时间 2019.11.1 评分等级 课程作业: 将奇数位小写字母改写为大写字母(用文件输出) 实验代码: package Domon7; im ...
- 第j九周学习总结暨第七周实验报告
完成火车站售票程序的模拟. 要求: (1)总票数1000张: (2)10个窗口同时开始卖票: (3)卖票过程延时1秒钟: (4)不能出现一票多卖或卖出负数号票的情况. 一:实验代码 package d ...
随机推荐
- socket 异步 发送 接收 数据
Socket socketClints = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); / ...
- python中assert的用法
assert:断言 格式: assert 表达式 [, 参数] 当表达式为真时,程序继续往下执行: 当表达式为假时,抛出AssertionError错误,并将 参数 输出 举例: def foo( ...
- 原生Js_制作简易日历
javascript制作简易日历,月份信息已经放在一个数组中,在<script>...</script>中编写代码实现其功能 实现步骤 a) 获取需要操作的dom对象 b) 在 ...
- Python3.X Selenium 自动化测试中如何截图并保存成功
在selenium for python中主要有三个截图方法,我们挑选其中最常用的一种. 挑最常用的:get_screenshot_as_file() 相关代码如下:(下面的代码可直接复制) # co ...
- python学习之路(19)
匿名函数 当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便. 在Python中,对匿名函数提供了有限支持.还是以map()函数为例,计算f(x)=x2时,除了定义一个f(x) ...
- 第五次实验报告&学习总结
一.实验目的 (1) 理解抽象类与接口的使用; (2)了 解包的作用,掌握包的设计方法. 二.实验要求 (1)掌 握使用抽象类的方法. (2)掌 握使用系统接口的技术和创建自定义接口的方法. (3) ...
- php面向对象 2
继承概念:如果一个类有子类,那么该子类会继承父类的一切东西(私有成员访问不到)在定义子类的时候需要加一个关键字:extends特点:单继承,一个类只能有一个父类如果父类中有构造函数,子类在实例化的时候 ...
- C++动态链接库实践
参考:https://www.cnblogs.com/Anker/p/3746802.html gcc -fPIC -shared calc.c -o libcalc.so, 编译得到 在linux上 ...
- Oracle中如何生成随机数字、随机字符串、随机日期
.随机小数 dbms_random.value(low,high): --获取一个[low,high)之间的小数,包含low,不包含high 可以结合trunc函数获取整数 例如: select db ...
- jquery.validate.js使用之自定义表单验证规则
jquery.validate.js使用之自定义表单验证规则,下面列出了一些常用的验证法规则 jquery.validate.js演示查看 jquery validate强大的jquery表单验证插件 ...