实验任务详情:

完成火车站售票程序的模拟。

要求:

(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.主要学习了同步与死锁,并通过窗口卖票的代码对这周的学习内容有了更好的巩固。

最新文章

  1. HTML常用属性
  2. 把内容生成txt文件
  3. 【WP 8.1开发】解决摄像头翻转问题(RuntimeApp篇)
  4. POJ 3321 树状数组(+dfs+重新建树)
  5. 【应用笔记】【AN004】VB环境下基于RS-485的4-20mA电流采集
  6. Rsyslog配置
  7. C++转到C#历程零基础知识(持续增加)
  8. python中数据的保存
  9. java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
  10. request.getParameterMap();
  11. ValidateBox( 验证框) 组件
  12. linux查看用户登录信息2-who命令
  13. AS3中释放优化的几条常识
  14. EntityFramework批量Insert
  15. 网络通信TCP编程实例代码
  16. Android保存图片到本地相册
  17. Impala SQL 使用小记
  18. 【大数据】Sqoop学习笔记
  19. Jquery中&quot;$(document).ready(function(){ })&quot;函数的使用详解
  20. 【AtCoder】ARC095 C-F题解

热门文章

  1. Nagios-报错:UNKNOWN Can&#39;t connect to the JVM:
  2. QT5线程关闭
  3. Gene co-expression analysis for functional classification and gene–disease predictions
  4. matplotlib中plt.scatter()参数详解
  5. Net中Attribute特性的高级使用及自定义验证实现
  6. 使用keil生成bin文件
  7. R_Studio(学生成绩)绘制频率分布直方图、分布饼图、折线比较图
  8. JS框架_(Progress.js)圆形动画进度条
  9. mybatis逆向工程的text类型的一个小坑
  10. C++入门经典-例3.13-不加break的switch判断语句