zoukankan      html  css  js  c++  java
  • 实验报告七和第九周总结

    完成火车站售票程序的模拟。

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

    代码:

    package Text10;
    
    public class MyThread implements Runnable{
    	
    		private int ticket=1000;
    		
    		public void run() {
    			 while(true) {
    		            synchronized(this){
    		
    				if(ticket>=0) {
    					try {
    						Thread.sleep(1000);  //延迟一秒
    					}catch(InterruptedException e) {
    						e.printStackTrace();
    						}
    	System.out.println(Thread.currentThread().getName()+"卖出一张票,剩下票数:ticket="+ticket--);
    
    				}
    			}
    	    }
    	}
    }
    

    测试类

    package Text10;
    
    public class Text1024 {
    
    	public static void main(String[] args) {
    	
    			    MyThread mt=new MyThread();
    			    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();
     }
    	}
    

    附:

    总结:

    1.这周学了进程与线程的区别;

    要实现多线程需:

    继承Thread类 :

    实现Runnable接口:

    2.学了线程的常用操作方法,需要在实践中记住他们

    3.学习了同步和死锁:

    使用同步代码块:synchronized(同步对象){
                                                                    需要同步代码;
                                                                    }
    和同步方法:
    synchronized方法返回值 方法名称(参数列表){}
    

    4.学了File类和RandomAccessFile类,目前来说还听不懂,继续学习中。作业运行的结果感觉错了不知道哪出了问题

  • 相关阅读:
    iptables防火墙操作
    磁盘配置
    软件包安装
    网络配置
    用户、组及权限控制
    常见的Linux操作
    Vmware下CentOS 7安装步骤
    Spark(十四)【SparkSQL集成Hive】
    Scala和Java的List集合互相转换
    Spark(十)【RDD的读取和保存】
  • 原文地址:https://www.cnblogs.com/saury/p/11735840.html
Copyright © 2011-2022 走看看