第九周课程总结&实验报告(七)

Java实验

实验任务详情:

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

实验源码:

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
public class Maipiao implements Runnable {
  private int ticket = 1000;
 
  public void run() {
 
      for (int i = 1; i <= 1000; i++) {
          synchronized (this) {
              if(ticket==0) {
                  System.out.println(Thread.currentThread().getName() + "票已售完!");
                  break;
              }
              if (ticket > 0) {
                  ticket--;
                  try {
                      Thread.sleep(0);
                  } catch (InterruptedException e) {
                      e.printStackTrace();
                  }
                  System.out.println(Thread.currentThread().getName() + " 买出一张票    余票:ticket=" + ticket);
 
              }
          }
      }
 
  }
}
public class YOU {
    public static void main(String[] args) {
        Maipiao mp=new Maipiao();
        Thread ck1 = new Thread(mp, "窗口1");
        Thread ck2 = new Thread(mp, "窗口2");
        Thread ck3 = new Thread(mp, "窗口3");
        Thread ck4 = new Thread(mp, "窗口4");
        Thread ck5 = new Thread(mp, "窗口5");
        Thread ck6 = new Thread(mp, "窗口6");
        Thread ck7 = new Thread(mp, "窗口7");
        Thread ck8 = new Thread(mp, "窗口8");
        Thread ck9 = new Thread(mp, "窗口9");
        Thread ck10 = new Thread(mp, "窗口10");
 
        ck1.start();
        ck2.start();
        ck3.start();
        ck4.start();
        ck5.start();
        ck6.start();
        ck7.start();
        ck8.start();
        ck9.start();
        ck10.start();
    }
}

  实验结果:

 

 

 

实验结果:通过这一周的学习,我知道了

Java中线程的创建有如下三种基本形式。

1、继承Thread类,重写该类的run()方法。
2、实现java.lang.Runnable接口
3、使用Callable和Future接口创建线程。

线程的状态:

1.创建状态

2.就绪状态

3.运行状态

4.阻塞状态

5.死亡状态

我会好好学习的,争取有更大的进步。

 

posted on   t唐明  阅读(109)  评论(1编辑  收藏  举报

努力加载评论中...
点击右上角即可分享
微信分享提示