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

自闭症网瘾萝莉.ら 提交于 2019-12-02 06:25:32

实验任务详情:

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

1、实验代码

package test;

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




package test;

public class Seven {
    public static void main (String args[]) {
        MyThread my = new MyThread();
        Thread my1 = new Thread(my);
        my1.setName("窗口1");
        
        Thread my2 = new Thread(my);
        my2.setName("窗口2");
        
        Thread my3 = new Thread(my);
        my3.setName("窗口3");
        
        Thread my4 = new Thread(my);
        my4.setName("窗口4");
        
        Thread my5 = new Thread(my);
        my5.setName("窗口5");
        
        Thread my6 = new Thread(my);
        my6.setName("窗口6");
        
        Thread my7 = new Thread(my);
        my7.setName("窗口7");
        
        Thread my8 = new Thread(my);
        my8.setName("窗口8");
        
        Thread my9 = new Thread(my);
        my9.setName("窗口9");
        
        Thread my10 = new Thread(my);
        my10.setName("窗口10");
        
        my1.start();
        my2.start();
        my3.start();
        my4.start();
        my5.start();
        my6.start();
        my7.start();
        my8.start();
        my9.start();
        my10.start();
         
    }
}


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!