JAVA多线程售票问题
难点:要保证在卖出每一张票后,在总票数上减1时,总票数是一个真实的值,也就是说总票数是多个线程中共享的数据,
并且总票数是同步的。
public class BuyTicketTest { public static void main(String[] args) { final Ticket ticket = new Ticket(); for (int i = 0; i < 101; i++) { new Thread(new Runnable() { @Override public void run() { ticket.decrease(); } }).start(); } } } class Ticket { private int ticketPollCount = 100; //总票数 public synchronized void decrease() { if (ticketPollCount == 0) { System.out.println("没有足够的票!"); return; } ticketPollCount--; System.out.println(ticketPollCount); } }
如果有使用请标明来源:http://www.cnblogs.com/duwenlei/