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第七次实验报告的更多相关文章

  1. 第七周&实验报告五

    实验四 类的继承 •实验目的 •理解抽象类与接口的使用: •了解包的作用,掌握包的设计方法. •实验要求 •掌握使用抽象类的方法. •掌握使用系统接口的技术和创建自定义接口的方法. •了解 Java ...

  2. 20165337第七周实验报告《Java面向对象程序设计》

    实验报告封面 实验内容及步骤 实验一.实现百分制成绩转成"优.良.中.及格.不及格"五级制成绩的功能 代码 public class MyUtil{ public static S ...

  3. 2019JAVA第十一次实验报告

    #Java实验报告 班级 计科二班 学号 20188442 姓名 吴怡君 完成时间 2019.11.22 评分等级 简易记事本 实验代码 package Domon10; import java.aw ...

  4. 2019JAVA第六次实验报告

    Java实验报告 班级 计科二班 学号 20188442 姓名 吴怡君 完成时间 2019.10.18 评分等级 实验四 类的继承 实验目的 理解异常的基本概念: 掌握异常处理方法及熟悉常见异常的捕获 ...

  5. 2019JAVA第五次实验报告

    Java实验报告 班级 计科二班 学号 20188442 姓名 吴怡君 完成时间2019/10/11 评分等级 实验四 类的继承 实验目的 理解抽象类与接口的使用: 了解包的作用,掌握包的设计方法. ...

  6. 2019JAVA第四次实验报告

    JAVA实验报告 班级 计科二班 学号 20188442 姓名 吴怡君 完成时间 2019/9/29 评分等级 实验四 类的继承 1.实验目的 掌握类的继承方法: 变量的继承和覆盖,方法的继承.重载和 ...

  7. 2019JAVA第三次实验报告

    Java实验报告 班级 计科二班 学号 20188442 姓名 吴怡君 完成时间 2019.9.24 评分等级 实验三 String类的应用 一.实验目的 掌握类String类的使用: 学会使用JDK ...

  8. 2019JAVA第八次实验报告

    班级 计科二班 学号 20188442 姓名 吴怡君 完成时间 2019.11.1 评分等级 课程作业: 将奇数位小写字母改写为大写字母(用文件输出) 实验代码: package Domon7; im ...

  9. 第j九周学习总结暨第七周实验报告

    完成火车站售票程序的模拟. 要求: (1)总票数1000张: (2)10个窗口同时开始卖票: (3)卖票过程延时1秒钟: (4)不能出现一票多卖或卖出负数号票的情况. 一:实验代码 package d ...

随机推荐

  1. 用DevExpress.textEdit控件限定数据录入格式

    例:只允许输入4位数字 第一步 第二部 例:只允许IP格式 设置Mask属性项的EditMask属性值为:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5 ...

  2. shiro框架学习-6-Shiro内置的Filter过滤器及数据加解密

    1.  shiro的核心过滤器定义在枚举类DefaultFilter 中,一共有11个 ,配置哪个路径对应哪个拦截器进行处理 // // Source code recreated from a .c ...

  3. string、wstring、CString 相互转换

    关于string wstring cstring的功能这里不详细叙述了 可参见这里:https://www.cnblogs.com/guolixiucai/p/4716521.html 关于转换这里只 ...

  4. css grid 随笔

    原文出自Arien的博客https://www.w3cplus.com/css3/line-base-placement-layout.html 首先定义一个网格 1.可以给父容器的display属性 ...

  5. 51 Nod 1556计算(默慈金数的应用)

    #include<bits/stdc++.h> #define mod 1000000007 using namespace std; typedef long long ll; ll m ...

  6. [JZOJ6244]【NOI2019模拟2019.7.1】Trominoes 【计数】

    Description n,m<=10000 Solution 考虑暴力轮廓线DP,按顺序放骨牌 显然轮廓线长度为N+M 轮廓线也是单调的 1表示向上,0表示向右 N个1,M个0 只能放四种骨牌 ...

  7. KMP的妙用(利用next数组寻找字符串的循环节)

    利用KMP的next数组的性质,我们可以找到next数组的循环节. 先说结论: 设字符串长n,则若其  i % ( i – next[n] ) == 0 ,则其有循环节(循环节数目大于1),其循环节数 ...

  8. Codeforces Round #584 - Dasha Code Championship - Elimination Round (rated, open for everyone, Div. 1 + Div. 2) G1. Into Blocks (easy version)

    题目:https://codeforc.es/contest/1209/problem/G1 题意:给你一个序列,要你进行一些操作后把他变成一个好序列,好序列的定义是,两个相同的数中间的数都要与他相同 ...

  9. php curl方法 支持 http https get post cookie

    //请求方式curl封装 @author Geyaru QQ 534208139 参数1:访问的URL,参数2:post数据(不填则为GET),参数3:提交的$cookies,参数4:是否返回$coo ...

  10. Apicloud_(接口验证)用户注册头部信息X-APICloud-AppKey生成

    接口验证KEY生成规则说明 官方文档: 传送门 "X-APICloud-AppKey"生成规则是基于SHA1()算法生成的 AppKey= SHA1(你的应用ID + 'UZ' + ...