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


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

    package zy123;
    
    class MyThread implements Runnable{
    	
    	
    	private int ticket =1000;
    	public   void run() {
    		for(int i=0;i<1500;i++) {
    			synchronized(this) {
    				if(ticket>0){
    					try {
    						  Thread.sleep(1000);
    					}catch (InterruptedException e) {
    						e.printStackTrace();
    					}
    	System.out.println(Thread.currentThread().getName()+" 卖:="+ticket--);
    				
    			}
    		}
    	
    	}
     }
    };
    
    public class SyncDemo02{
    	public static void main(String args[]) {
    	  MyThread my =new MyThread();
    		 Thread t1=new Thread(my,"窗口1");
    		Thread t2=new Thread(my,"窗口2");
    		Thread t3=new Thread(my,"窗口3");
    		Thread t4=new Thread(my,"窗口4");
    		Thread t5=new Thread(my,"窗口5");
    		Thread t6=new Thread(my,"窗口6");
    		Thread t7=new Thread(my,"窗口7");
    		Thread t8=new Thread(my,"窗口8");
    		Thread t9=new Thread(my,"窗口9");
    		Thread t10=new Thread(my,"窗口10");
    		t1.start();
    		t2.start();
    		t3.start();
    		t4.start();
    		t5.start();
    		t6.start();
    		t7.start();
    		t8.start();
    		t9.start();
    		t10.start();
    		
    		
    	}
    }
    

    实验截图:
    思路:这道题参考了书上的270页等代码 使用synchronized 关键字同步数据 使之资源共享 改了一些部分

    学习总结:


    以上都是知识的关键点

  • 相关阅读:
    iOS中的imageIO与image解码
    在asp.net 中生成PDF的方法
    asp.net中模拟测试smtp发邮件
    ASP.NET导入EXCEL方法汇总
    在asp.net中使用加密数据库联接字符串
    CSS实现限制字数功能
    在ASP.NET中备份和还原数据库
    说说ASP.NET的IsPostBack
    javascript小技巧之with()方法
    CSS中filter滤镜的学习笔记
  • 原文地址:https://www.cnblogs.com/clearlove1215/p/11735528.html
Copyright © 2020-2023  润新知