zoukankan      html  css  js  c++  java
  • 第九周学习总结&实验报告(7)

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

    实验代码:

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

    运行结果:

    学习总结:

    1.线程状态:
    创建状态->就绪状态(新建状态以后,调用该线程的start()就可以启动线程)->运行状态->堵塞状态(一个正在执行的线程在某些特殊情况下,如果被人为的挂起或需要执行耗时的输入操作时,会让出CPU并中止自己的执行)->死亡状态(线程调用spot()方法或run()方法执行结束后,即处于死亡状态)
    2.线程操作的相关方法:

    3.线程的强制运行:
    在线程操作中,可以使用join()方法让一个线程强制运行。在线程强制运行期间,其他线程无法运行,必须等待此线程完成之后才能继续执行。
    join()方法会抛出InterruptedException的异常,所以编程时必须把join()方法写在Try...catch块内。
    4.线程的休眠:
    使用Thread.sleep()方法既可以允许一个线程进行暂时的休眠。
    5.File类:

  • 相关阅读:
    github教程
    Django订单接入支付宝
    python去除html标签的几种方法
    vue-cli项目生成
    restful设计规范
    Vue的指令系统、计算属性和表单输入绑定
    Vue工具
    药物不良反应数据库信息的下载
    爬虫案例之Pubmed数据库下载
    数据分析案例之39药品网
  • 原文地址:https://www.cnblogs.com/jzq93/p/11739404.html
Copyright © 2011-2022 走看看