• 生成随机数模拟售票,学习多线程


    最近应用开发的程过中出现了一个小问题,顺便记录一下原因和方法--生成随机数

        假设有火车票100张,创立10个程线模拟10个售票点,每一个售票点随机生成间时卖一张票。 印打出售票程过,注意应用synchronized确保一同张票只能卖出一次。

        

    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class Resource {
    
    	int ticketNum;
    	boolean flag = false;
    	SimpleDateFormat sdf;
    
    	int i = 1;
    
    	public Resource(int ticketNum) {
    		this.ticketNum = ticketNum;
    
    		sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
    	}
    
    	public synchronized void sellTicket(Seller s) {
    		if (i <= ticketNum) {
    			System.out.println("在" + sdf.format(new Date()) + " 第" + s.num
    					+ "售票点卖了第" + i + "张票...");
    			i++;
    
    		} else {
    			flag = true;
    		}
    	}
    
    }
        每日一道理
    信念是巍巍大厦的栋梁,没有它,就只是一堆散乱的砖瓦;信念是滔滔大江的河床,没有它,就只有一片泛滥的波浪;信念是熊熊烈火的引星,没有它,就只有一把冰冷的柴把;信念是远洋巨轮的主机,没有它,就只剩下瘫痪的巨架。
    public class Seller implements Runnable {
    
    	int num;
    	Resource rs;
    
    	public Seller(int num, Resource rs) {
    		super();
    		this.num = num;
    		this.rs = rs;
    	}
    
    	@Override
    	public void run() {
    		// TODO Auto-generated method stub
    		while (rs.flag == false) {
    			// 用调资源类的同步方法
    			rs.sellTicket(this);
    			try {
    				// 生成随机数(范围1-1000)
    				int random = (int) (Math.random() * 1000);
    				Thread.sleep(random);
    			} catch (InterruptedException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    		}
    	}
    
    }
    public class Test {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Resource rs = new Resource(100);
    		for (int i = 0; i < 10; i++) {
    			Thread t = new Thread(new Seller(i, rs));
    			t.start();
    		}
    	}
    
    }

    文章结束给大家分享下程序员的一些笑话语录: 很多所谓的牛人也不过如此,离开了你,微软还是微软,Google还是Google,苹果还是苹果,暴雪还是暴雪,而这些牛人离开了公司,自己什么都不是。

  • 相关阅读:
    poj 2485 Highways 最小生成树
    hdu 3415 Max Sum of MaxKsubsequence
    poj 3026 Borg Maze
    poj 2823 Sliding Window 单调队列
    poj 1258 AgriNet
    hdu 1045 Fire Net (二分图匹配)
    poj 1789 Truck History MST(最小生成树)
    fafu 1181 割点
    减肥瘦身健康秘方
    人生的问题
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3036022.html
Copyright © 2020-2023  润新知