java多线程快速入门(九)

多线程安全问题(卖火车票案例)

package com.cppdy;

class MyThread5 implements Runnable{

    private Integer ticketCount=100;
    @Override
    public void run() {
        while(ticketCount>0) {
            try {
                Thread.sleep(50);
            } catch (Exception e) {
                e.printStackTrace();
            }
            sale();
        }
    }
    
    public void sale() {
        System.out.println(Thread.currentThread().getName()+"卖出了第:"+(100-ticketCount+1)+"张票。");
        ticketCount--;
    }
}

public class ThreadDemo5 {

    public static void main(String[] args) throws Exception{
        MyThread5 mt = new MyThread5();
        Thread thread1 = new Thread(mt,"窗口1");
        Thread thread2 = new Thread(mt,"窗口2");
        thread1.start();
        thread2.start();
    }

}

 

posted @ 2018-11-25 14:21  知识追求者  阅读(166)  评论(0编辑  收藏  举报