zoukankan      html  css  js  c++  java
  • 加入同步代码块解决线程安全问题--不熟练

    package com.bjpowernode.t15;

    /**
    * 电影票
    */
    public class Ticket implements Runnable {

    // 电影票总数
    private int num = 100;

    private int maoyan;

    @Override
    public void run() {
    while (true) {

    // 加入同步代码块解决线程安全问题
    synchronized (this) {
    // 当电影票售罄后,跳出循环不再执行
    if (num <= 0) {
    break;
    } else {
    if ("猫眼电影".equals(Thread.currentThread().getName())) {
    maoyan++;
    }
    // 表示卖出了一张票
    num--;
    System.out.println(Thread.currentThread().getName() + "卖出了一张,剩余:" + num);
    }
    }

    }
    if ("猫眼电影".equals(Thread.currentThread().getName())) {
    System.out.println("猫眼电影卖了" + maoyan + "张");
    }

    }

    }

    -------------------------

    package com.bjpowernode.t15;

    public class Test {

    public static void main(String[] args) {
    //创建电影票的对象
    Ticket ticket = new Ticket();

    //创建三个公司(线程)售卖电影票
    Thread t1 = new Thread(ticket,"猫眼电影");
    Thread t2 = new Thread(ticket,"糯米电影");
    Thread t3 = new Thread(ticket,"美团电影");
    t1.start();
    t2.start();
    t3.start();
    }

    }

  • 相关阅读:
    BZOJ1059|矩阵游戏
    Tyvj3632|超级英雄Hero
    BZOJ1192 鬼谷子的钱袋
    BZOJ1003 ZJOI2006物流运输trans 0'
    BZOJ1008|HNOI2008 越狱
    添加setuptools脚本
    更新linux下python版本
    函数式编程正确姿势
    python 多线程操作数据库
    python with语句
  • 原文地址:https://www.cnblogs.com/Koma-vv/p/9634545.html
Copyright © 2011-2022 走看看