zoukankan      html  css  js  c++  java
  • 实现多窗口售票的两种方式

    继承的方式实现多窗口售票

    TestWindow1

    package com.aff.thread;
    
    public class TestWindow {
        //继承的方式实现多窗口售票
    //存在线程安全性问题,后面给出解决方法
    public static void main(String[] args) { Window w1 = new Window(); Window w2 = new Window(); Window w3 = new Window(); w1.setName("窗口1"); w2.setName("窗口2"); w3.setName("窗口3"); w1.start(); w2.start(); w3.start(); } } class Window extends Thread{ static int ticket = 100; public void run(){ while(true){ if(ticket>0){ System.out.println(Thread.currentThread().getName()+"售票,票号为:"+ ticket--); }else{ break; } } } }

    实现的方式实现多窗口售票

    TestWindow1

    package com.aff.thread;
    
    //使用实现Runnable接口的方式,售票
    //此程序存在线程安全问题:打印车票时,会出现重票,错票
    public class TestWindow1 { public static void main(String[] args) { Window1 w = new Window1(); Thread t1 = new Thread(w); Thread t2 = new Thread(w); Thread t3 = new Thread(w); t1.setName("窗口1"); t2.setName("窗口2"); t3.setName("窗口3"); t1.start(); t2.start(); t3.start(); } } class Window1 implements Runnable { int ticket = 100; @Override public void run() { while (true) { if (ticket > 0) { System.out.println(Thread.currentThread().getName() + "售票,票号为:" + ticket--); } else { break; } } } }
    All that work will definitely pay off
  • 相关阅读:
    vue : 无法加载文件 C:UsersXXXAppDataRoaming pmvue.ps1,因为在此系统上禁止运行脚本
    js全屏和退出全屏浏览器
    js 如何保存代码段并执行以及动态加载script
    计算年龄,精确到年月日
    js闭包问题
    构造函数和继承方法
    js 箭头函数不适用的场景
    获取一组数据的最大值和最小值
    地图
    json传输
  • 原文地址:https://www.cnblogs.com/afangfang/p/12612927.html
Copyright © 2011-2022 走看看