JAVA实现多线程编程实例——窗口卖票

    技术2022-07-10  177

    JAVA实现多线程编程实例——窗口卖票

    环境:

    IDEA——2019

    jdk-9.0.4

    源码如下:

    Station 类

    public class Station extends Thread{ public Station(String name) { super(name); } static int tick = 40; int tickets=0; // 创建一个静态钥匙 static Object ob = "aa"; @Override public void run() { while (tick > 0) { synchronized (ob) {// 锁 if (tick > 0) { tickets= (int) (Math.random()*10);//随机票数 if(tickets>tick) tickets=tick; tick=tick-tickets; System.out.println(getName() + "卖出了" + tickets + "张票"); System.out.println("还剩"+tick+"张"); } } try { sleep(1000);//休息 } catch (InterruptedException e) { e.printStackTrace(); } } System.out.println(getName()+"卖完啦"); } }

    MainC类(MainClass)

    public class MainC { public static void main(String[] args) { Station station1=new Station("窗口1"); Station station2=new Station("窗口2"); Station station3=new Station("窗口3"); Station station4=new Station("窗口4"); Station station5=new Station("窗口5"); station1.start(); station2.start(); station3.start(); station4.start(); station5.start(); } }

    正常运行可得结果(^-^)V

    Processed: 0.028, SQL: 9