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


    实验任务详情:

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

    
    public class ticket{
        public static void main(String[] args) {
        	
            w mt=new w(); 
            
            new Thread(mt,"窗口1").start();               
            new Thread(mt,"窗口2").start();
            new Thread(mt,"窗口3").start();
            new Thread(mt,"窗口4").start();
            new Thread(mt,"窗口5").start();
            new Thread(mt,"窗口6").start();
            new Thread(mt,"窗口7").start();
            new Thread(mt,"窗口8").start();
            new Thread(mt,"窗口9").start();
            new Thread(mt,"窗口10").start();
        }
    }
    
    class w implements Runnable{ 
    	
        private int ticket=1000;
        
        public void run() {                                         
            for(int i=0;i<1000;i++) {
                synchronized(this) {                            
                    if(ticket>0) {                                 
                        try {
                            Thread.sleep(1000);
                        }
                        catch(InterruptedException e) {
                            e.printStackTrace();
                        }
                        System.out.println(Thread.currentThread().getName()+
                        		           "余票:"+ticket--);    
                    }
                }
            }
        }
    }
    

    学习总结:
    1.主要学习了多线程的实现;
    2.主要学习了Thread中的方法;
    3.主要学习了取得和设置线程名称、判断线程是否启动、线程的强制转换、线程的休眠、中断、礼让等等。
    4.主要学习了同步与死锁,并通过窗口卖票的代码对这周的学习内容有了更好的巩固。

  • 相关阅读:
    [转载]哈佛经典——《管理自己》
    JavaSE基础_java简介和环境搭建_2
    JavaSE基础_java简介和环境搭建_1
    linux_base_command4
    linux_base_command3
    linux_base_command2
    linux_base_command2.5_VI
    java 浮点数表示法
    mysql 常用命令记录
    sql,行转列
  • 原文地址:https://www.cnblogs.com/arthur-w/p/11725725.html
Copyright © 2020-2023  润新知