201711671125 Java多线程实例(第十一周)

创建3个售票窗口同时开始销售10张票。

源代码:

public class One {

    public static void main(String[] args) {
        Ticketoffice ticketoffice=new Ticketoffice(new Object(),10);
        new Thread(ticketoffice,"售票窗口1").start();
        new Thread(ticketoffice,"售票窗口2").start();
        new Thread(ticketoffice,"售票窗口3").start();
    }

}
class Ticketoffice implements Runnable{
    private Object object;
    private int ticketnum;
    public Ticketoffice(Object object,int ticketnum) {
        this.object=object;
        this.ticketnum=ticketnum;
    }
    public void run() {
        while(ticketnum>0) {
            synchronized(object) {
                if(ticketnum<=0) {
                    System.out.println(Thread.currentThread().getName()+"没有票了");
                }
                else {
                    System.out.println(Thread.currentThread().getName()+"卖出了一张票,剩余"+--ticketnum+"张票");
                    try {
                        Thread.sleep(1000L);
                    }
                    catch(InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }
}

运行结果截图:

猜你喜欢

转载自blog.csdn.net/Ulong_/article/details/84642957