模拟售火车票 多线程

模拟售火车票 多线程

100张票,10个窗口(10个线程模拟),美国服务器,香港空间,实现线程卖票计数import java.util.Iterator;import java.util.Map;import java.util.concurrent.ConcurrentHashMap;public class SellTicket implements Runnable {private int count = 100;static Map<String,Integer> map = new ConcurrentHashMap<String,Integer>();public static void main(String[] args) {SellTicket st = new SellTicket();for (int i = 0; i < 10; i++) {Thread thread = new Thread(st);map.put(thread.getName(), 0);thread.start();}}@Overridepublic void run() {while (true) {synchronized(this){if(count > 0){count–;System.out.println(“线程=” + Thread.currentThread().getName() + “;剩余票数=” + count);Iterator<Map.Entry<String,Integer>> i = map.entrySet().iterator();while(i.hasNext()){Map.Entry<String,Integer> entry=(Map.Entry<String,Integer>)i.next();if(entry.getKey().equals(Thread.currentThread().getName()))map.put(entry.getKey(), entry.getValue().intValue() + 1);}}else if(count==0){Iterator<Map.Entry<String,Integer>> i = map.entrySet().iterator();while(i.hasNext()){Map.Entry<String,Integer> entry=(Map.Entry<String,Integer>)i.next();System.out.println(“线程=” + entry.getKey() + “;卖票数=” + entry.getValue());}}}try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}}}

  

posted on

,网站空间我想,旅行需要孤独,需要一个人慢慢体会,静静思考。

模拟售火车票 多线程

相关文章:

你感兴趣的文章:

标签云: