• 第九周学习总结&实验总结


    一、火车站售票程序模拟

       (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接口可以。

  • 相关阅读:
    wxpython模块学习
    Linux Kernel TCP/IP Stack|Linux网络硬核系列
    解 Linux 的 epoll 机制
    取消 “安装未知发布者程序” 提示
    添加 “开机自启动” 程序
    x和y轴取对数之后的散点图
    python 混淆矩阵可视化
    fileserverMinio(进行中)
    谷粒商城 分布式高级篇全文检索ElasticSearch进阶term查询 match查询的区别
    谷粒学院高级118、全文检索ElasticSearch进阶aggregations聚合分析
  • 原文地址:https://www.cnblogs.com/chixue/p/11734400.html
Copyright © 2020-2023  润新知