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

要求:
(1)总票数1000张;
(2)10个窗口同时开始卖票;
(3)卖票过程延时1秒钟;
(4)不能出现一票多卖或卖出负数号票的情况。
一:实验代码

package first;
class MyThread implements Runnable{
private int ticket = 1 ;
public void run(){
for(int i=0;i<1000;i++){
synchronized(this){
if(ticket<=1000){
try{
Thread.sleep(1000) ;
}catch(InterruptedException e){
e.printStackTrace() ;
}
System.out.println(Thread.currentThread().getName()+"卖票:ticket = " + ticket++ );
}
}
}
}
}
public class Demo{
public static void main(String args[]){
MyThread my = new MyThread();
Thread d1 = new Thread(my,"窗口A");
Thread d2 = new Thread(my,"窗口B");
Thread d3 = new Thread(my,"窗口C");
Thread d4 = new Thread(my,"窗口D");
Thread d5 = new Thread(my,"窗口E");
Thread d6 = new Thread(my,"窗口F");
Thread d7 = new Thread(my,"窗口G");
Thread d8 = new Thread(my,"窗口H");
Thread d9 = new Thread(my,"窗口I");
Thread d10 = new Thread(my,"窗口J");
d4.setPriority(Thread.MIN_PRIORITY) ;
d5.setPriority(Thread.MAX_PRIORITY) ;
d6.setPriority(Thread.NORM_PRIORITY) ;
d1.start() ;
d2.start() ;
d3.start() ;
d4.start() ;
d5.start() ;
d6.start() ;
d7.start() ;
d8.start() ;
d9.start() ;
d10.start() ;
}
}
结果截图

学习总结:

1 对于java IO操作文件类——File的介绍与对File类主要方法与构造类的了解

2 Java中多线程的实现主要是通过继承Thread类或实现Runnable接口。其中Runnable接口可以资源共享。但不管使用哪种方法都要通过覆写run();在实例化的时候通过调用start()方法来启动多线程。

第9周总结&实验报告7的更多相关文章

  1. 20155310第一周JAVA实验报告

    20155310第一周JAVA实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 使用JDK和IDE编译.运行简单 ...

  2. 20145310第一周JAVA实验报告

    20145310第一周JAVA实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 使用JDK和IDE编译.运行简单 ...

  3. 第五周总结&实验报告三

    第五周总结&实验报告三 实验报告 1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码.结果截图.) ① 统计该字符串中字母s ...

  4. 第六周&java实验报告四

    实验报告: 一.实验目的 (1)掌握类的继承 (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现: 二.实验的内容 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:rad ...

  5. 第六周总结 & 实验报告(四)

    第六周小结 一.instanceof关键字         在Java中使用instanceof关键字判断一个对象到底是哪个类的实例,返回boolean类型 1.instanceof关键字的作用 例c ...

  6. 第三周总结&实验报告一

    第三周总结 在这周对Java进行了更深层次的学习,Java的学习也越来越难了,慢慢的加入了一些新的构造新的方法,还有许许多多简化代码的相关知识,我还是要认真的去吃透这些知识,自己也要慢慢的去研究一些题 ...

  7. 第五周总结 & 实验报告(三)

    第五周总结 一.继承       1.类的继承格式 class 父类{} class 子类 extends 父类{} 2.扩展类的功能 class 父类{ 父类属性: .......... ..... ...

  8. 20145307第一周JAVA实验报告

    20145307 <Java程序设计>第一次实验实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.08 ...

  9. 第九周总结&实验报告七

    小结:这周请了一天的假,所以回来的时候有些知识点跟不上,不过在第二节课学到了关于IO的知识很重要,对于这次的实验也有些吃力,这周的知识点主要集中在书上,在各种不同条件下学习运用什么样的代码.   一. ...

  10. 第八周总结&实验报告六

    总结:这周主要是学习异常的使用,已经怎么解决异常,总的来说学习的还是有点难度的,因为前面的知识还需要时间去弥补,这门课程还是要加油的学习! 这周主要所学: 一.异常 1.异常是导致程序中断运行的一种指 ...

随机推荐

  1. python字符串与列表的相互转化

    一.字符串转化为列表 a = 'abcabcabca' a = a.split('c') print(a) #['ab', 'ab', 'ab', 'a'] 二.列表转化为字符串 li = [&quo ...

  2. python list颠倒写法

    a=[1,2,3,4] a[::-1] ...... [4,3,2,1]

  3. 11. ClustrixDB 管理文件空间和数据库容量

    ClustrixDB监视集群中可用的空间量,并主动警告潜在的容量问题.确定集群容量的阈值是可配置的,如下所述. 存储类型 要了解如何管理设备和数据库的利用率,必须首先了解ClustrixDB如何分配磁 ...

  4. python 输出一个随机数

    题目:输出一个随机数. 程序分析:使用 random 模块. #!/user/bin/env python #coding:utf-8 import random print random.rando ...

  5. ex1.c

  6. [BZOJ2427]:[HAOI2010]软件安装(塔尖+DP)

    题目传送门 题目描述 现在我们的手头有N个软件,对于一个软件i,它要占用${W}_{i}$的磁盘空间,它的价值为${V}_{i}$.我们希望从中选择一些软件安装到一台磁盘容量为M计算机上,使得这些软件 ...

  7. selectKey 标签

    原文: https://blog.csdn.net/Sun_of_Rainy/article/details/81564433 在insert语句中,在Oracle经常使用序列.在MySQL中使用函数 ...

  8. md5sum c实现

    #include <stdio.h>#include <ctype.h> #define STR_VALUE(val) #val#define STR(name) STR_VA ...

  9. What is 'typeof define === 'function' && define['amd']' used for?

    What is 'typeof define === 'function' && define['amd']' used for? This code checks for the p ...

  10. JNI写本地日志文件

    调试JNI库 我喜欢反编译APK 然后替换.so文件 然后再编译成APK 其中写日志的话 用fopen("/sdcard/lei.txt","wb+")