java2 多线程2 买票

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java2 多线程2 买票相关的知识,希望对你有一定的参考价值。

 

技术分享
  /**
     * 这样买票会出现卖出超过100张票,把num静态化可以解决这个问题
     */
    private static void test1(){
        System.out.println("开始卖票"+Thread.currentThread().getName());
        Ticket ticket= new Ticket();
        Thread t1=new Thread(ticket);
        Thread t2=new Thread(ticket);
        Thread t3=new Thread(ticket);
        Thread t4=new Thread(ticket);
        t1.start();
        t2.start();
        t3.start();
        t4.start();
        System.out.println("结束卖票"+Thread.currentThread().getName());
    }

class Ticket implements Runnable{
    private int num=100;
    @Override
    public void run() {
        sale();
    }
    private void sale(){
        while (true){
            if(num>0){
                System.out.println("正在卖第"+num+"张票"+Thread.currentThread().getName());
                num--;
            }
        }
    }
}
多线程买票-超过100张

 技术分享

技术分享

 

以上是关于java2 多线程2 买票的主要内容,如果未能解决你的问题,请参考以下文章

多线程 - 窗口买票机制

简单的多线程买票模拟程序

多线程同步-买票系统

简单的多线程买票模拟程序(lock解决多线程存在大安全隐患)

多线程的同步方法

七. 多线程编程11.线程的挂起恢复和终止