美文网首页
分析火车站售票出现问题原因

分析火车站售票出现问题原因

作者: 卓昂芭比 | 来源:发表于2019-03-31 18:38 被阅读0次

    if(num>0) {

    t、t2、t3

    假设只剩一张票

    t过来了if(num>0){}但身体不舒服,上卫生间了

    t2过来了if(num>0){}他也身体不舒服,上卫生间了

    t3过来了if(num>0){}身体也不舒服,上卫生间了

    t回来,开始售票  num=0

    t2回来,开始售票  num=-1

    t3t回来,开始售票  num=-2

    try {

    Thread.sleep(100);

    } catch (InterruptedException e) {

    // TODO 自动生成的 catch 块

    e.printStackTrace();

    }

    System.out.println(Thread.currentThread().getName()+":"+num--);

    }

      static void sleep(long mills)在指定的毫秒数内让当前正在执行的线程休眠

    public class TicketTest implements Runnable {

    int num=100;

    public void run() {

    while(true) {

    if(num>0) {

    try {

    Thread.sleep(100);

    } catch (InterruptedException e) {

    // TODO 自动生成的 catch 块

    e.printStackTrace();

    }

    System.out.println(Thread.currentThread().getName()+":"+num--);

    }

    }

    // TODO 自动生成的方法存根

    }

    }

    package RunnableTest1;

    public class TicketThread {

    public static void main(String[] args) {

    //创建多个窗口对象

    TicketTest tt=new TicketTest();

    Thread t=new Thread(tt);

    t.setName("窗口1");

    Thread t2=new Thread(tt);

    t2.setName("窗口2");

    Thread t3=new Thread(tt);

    t3.setName("窗口3");

    //启动多线程对象

    t.start();

    t2.start();

    t3.start();

    }

    }

    相关文章

      网友评论

          本文标题:分析火车站售票出现问题原因

          本文链接:https://www.haomeiwen.com/subject/cspubqtx.html