第九周课程总结&实验报告
2024-08-30 04:58:30
实验任务详情:
完成火车站售票程序的模拟。
要求:
(1)总票数1000张;
(2)10个窗口同时开始卖票;
(3)卖票过程延时1秒钟;
(4)不能出现一票多卖或卖出负数号票的情况。
public class ticket{
public static void main(String[] args) {
w mt=new w();
new Thread(mt,"窗口1").start();
new Thread(mt,"窗口2").start();
new Thread(mt,"窗口3").start();
new Thread(mt,"窗口4").start();
new Thread(mt,"窗口5").start();
new Thread(mt,"窗口6").start();
new Thread(mt,"窗口7").start();
new Thread(mt,"窗口8").start();
new Thread(mt,"窗口9").start();
new Thread(mt,"窗口10").start();
}
}
class w implements Runnable{
private int ticket=1000;
public void run() {
for(int i=0;i<1000;i++) {
synchronized(this) {
if(ticket>0) {
try {
Thread.sleep(1000);
}
catch(InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+
"余票:"+ticket--);
}
}
}
}
}
学习总结:
1.主要学习了多线程的实现;
2.主要学习了Thread中的方法;
3.主要学习了取得和设置线程名称、判断线程是否启动、线程的强制转换、线程的休眠、中断、礼让等等。
4.主要学习了同步与死锁,并通过窗口卖票的代码对这周的学习内容有了更好的巩固。
最新文章
- HTML常用属性
- 把内容生成txt文件
- 【WP 8.1开发】解决摄像头翻转问题(RuntimeApp篇)
- POJ 3321 树状数组(+dfs+重新建树)
- 【应用笔记】【AN004】VB环境下基于RS-485的4-20mA电流采集
- Rsyslog配置
- C++转到C#历程零基础知识(持续增加)
- python中数据的保存
- java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
- request.getParameterMap();
- ValidateBox( 验证框) 组件
- linux查看用户登录信息2-who命令
- AS3中释放优化的几条常识
- EntityFramework批量Insert
- 网络通信TCP编程实例代码
- Android保存图片到本地相册
- Impala SQL 使用小记
- 【大数据】Sqoop学习笔记
- Jquery中";$(document).ready(function(){ })";函数的使用详解
- 【AtCoder】ARC095 C-F题解
热门文章
- Nagios-报错:UNKNOWN Can&#39;t connect to the JVM:
- QT5线程关闭
- Gene co-expression analysis for functional classification and gene–disease predictions
- matplotlib中plt.scatter()参数详解
- Net中Attribute特性的高级使用及自定义验证实现
- 使用keil生成bin文件
- R_Studio(学生成绩)绘制频率分布直方图、分布饼图、折线比较图
- JS框架_(Progress.js)圆形动画进度条
- mybatis逆向工程的text类型的一个小坑
- C++入门经典-例3.13-不加break的switch判断语句