zoukankan      html  css  js  c++  java
  • 第九周课程总结&实验报告(七)

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

    实验代码
    package t;
    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 h{
        public static void main(String args[]){
            MyThread my = new MyThread();
            Thread d1 = new Thread(my,"窗口1");
            Thread d2 = new Thread(my,"窗口2");
            Thread d3 = new Thread(my,"窗口3");   
            Thread d4 = new Thread(my,"窗口4");
            Thread d5 = new Thread(my,"窗口5");
            Thread d6 = new Thread(my,"窗口6");
            Thread d7 = new Thread(my,"窗口7");
            Thread d8 = new Thread(my,"窗口8");
            Thread d9 = new Thread(my,"窗口9");
            Thread d10 = new Thread(my,"窗口10");
            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.线程操作的主要方法
    2.在Thread类中,可以通过getName()方法取得线程的名称,通过setName()方法设置线程的名称。
    3.在线程强制运行期间,其他线程无法运行,必须等待此线程完成之后才可以继续执行。
  • 相关阅读:
    sqlite3 增删改查
    Charles 修改接口返回值
    矫正Django 时间不正确
    unittest 使用 HTMLTestRunner 生成测试报告
    unittest 使用例子
    pyppeteer
    linux源码编译-安装timescaledb数据库(中标麒麟+龙芯CPU) (转载)
    不会用java api对kafka topic进行创建、查询和删除,你也太out了(建议收藏)(转载)
    django 学习(转载)
    Docker 启动镜像(转载)
  • 原文地址:https://www.cnblogs.com/zcl666/p/11737498.html
Copyright © 2011-2022 走看看