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

Posted on 2019-10-25 19:52  hualikun  阅读(229)  评论(0)    收藏  举报

实验任务详情:

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

 

源代码 

package 实验室;

public class MyThread implements Runnable {
    private int ticket=1000;
    public void run() {
        for(int i=0;i<10000;i++) {
            this.sale1();
        }
    }
    public synchronized void sale1() {
        if(ticket>0) {
                try {
                    Thread.sleep(1000);
                }catch(InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println(Thread.currentThread().getName()+"卖票:ticket="+ticket--);
             }          
       }
}

package 实验室;

public class ticket {
    public static void main(String args[]) {
        MyThread my=new MyThread();
        Thread t1 = new Thread(my,"窗口A");
        Thread t2 = new Thread(my,"窗口B");
        Thread t3 = new Thread(my,"窗口C");
        Thread t4 = new Thread(my,"窗口D");
        Thread t5 = new Thread(my,"窗口E");
        Thread t6 = new Thread(my,"窗口F");
        Thread t7 = new Thread(my,"窗口G");
        Thread t8 = new Thread(my,"窗口H");
        Thread t9 = new Thread(my,"窗口I");
        Thread t10 = new Thread(my,"窗口J");
        t1.start();
        t2.start();
        t3.start();
        t4.start();
        t5.start();
        t6.start();
        t7.start();
        t8.start();
        t9.start();
        t10.start();
    }
}

  

总结

这次作业和书上那个原理相似,复现老师上课讲的基本能完成

synchronized();同步代码块的使用

本周学习IO 还有进程和线程,以及他们的区别