多线程卖票问题

public class TicketTest {

    public static void main() {
        Consumer consumer=new Consumer();
        new Thread(consumer,"窗口1").start();
        new Thread(consumer,"窗口2").start();
        new Thread(consumer,"窗口3").start();
        new Thread(consumer,"窗口4").start();
    }

    static class Consumer implements Runnable {
        static int ticketCount = 20;
        @Override
        public void run() {
            while (ticketCount > 0) {
                synchronized (Consumer.class) {
                    if (ticketCount > 0) {
                        ticketCount--;
                        System.out.println(Thread.currentThread().getName() + "卖1张票,剩余" + ticketCount + "张");
                    } else {
                        System.out.println("票已卖完");
                        return;
                    }
                }
                try {
                    Thread.sleep(100);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

直接调用new TicketTest().main即可

猜你喜欢

转载自blog.csdn.net/ZhangXuxiaoqingnian/article/details/82116077
今日推荐