zoukankan      html  css  js  c++  java
  • 第九周学习总结&实验总结

    一、火车站售票程序模拟

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

    实验源码:

    package Orange;
    
    class MyThread implements Runnable{
    	private int ticket = 1000;
    	public void run() {
    		for(int i=0;i<10000;i++){    
    			synchronized(this){    //给代码加锁,使其按顺序输出
    			if(ticket>0) {
    				try {
    					Thread.sleep(1000);
    				}catch(Exception e){
    					e.printStackTrace();
    				}
    				System.out.println(Thread.currentThread().getName()+"卖票一张;ticket="+ticket--);
    			}
    		}
    	  }
    	}	
    }
    public class Saleticket {
           public static void main(String args[]) {
        	   MyThread my = new MyThread();
        	   Thread s1=new Thread(my,"窗口1");
        	   Thread s2=new Thread(my,"窗口2");
        	   Thread s3=new Thread(my,"窗口3");
        	   Thread s4=new Thread(my,"窗口4");
        	   Thread s5=new Thread(my,"窗口5");
        	   Thread s6=new Thread(my,"窗口6");
        	   Thread s7=new Thread(my,"窗口7");
        	   Thread s8=new Thread(my,"窗口8");
        	   Thread s9=new Thread(my,"窗口9");
        	   Thread s10=new Thread(my,"窗口10");
        	          s1.start();
        	          s2.start();
        	          s3.start();
        	          s4.start();
        	          s5.start();
        	          s6.start();
        	          s7.start();
        	          s8.start();
        	          s9.start();
        	          s10.start();
           }
    }
    

    运行结果:

    二、总结

    多线程

    1、继承Thread类

    class 类名称 extends Thread{         //继承Thread类
           属性···;                                   //定义属性
           方法···;                                   //定义方法
           public void run(){
                     线程主体;                     //覆写Thread类中的ru()方法,此方法是线程的主体
           }
    }
    

    2、由于线程的运行需要本机操作系统支持,所以启动多线程时必须通过start()方法启动,而不能直接调用run()方法。
    3、实现Runnable接口

    class 类名称 implements Runnable{
    	属性···;
    	方法···;
    	public void run(){   //覆写Runnable接口中的run()方法
    		线程主体;
    	}
    }
    

    4、继承Thread类与Runnable接口的区别
    1)继承Thread类不能资源共享,而Runnable接口可以。

  • 相关阅读:
    适合程序员的两样工具-续集
    JavaScript之面向对象1
    人类简史笔记摘录
    做正确的事
    个人高效率任务列表
    视频技术基础
    了解更多梭罗与瓦尔登湖
    禅与摩托车维修的艺术
    人工智能发展及算法
    互联网没能降低房价,人工智能就可以不?
  • 原文地址:https://www.cnblogs.com/chixue/p/11734400.html
Copyright © 2011-2022 走看看