今天同桌问了一个我一个多线程的问题,其实很简单,但是,我没有马上解决

今天记录一下,

synchronized 加锁,有一点小心的是,这个只能对对象加锁,因为所有的对象的父亲都是object

其中onject 有相关的线程操作的方法,之前,我对共用资源使用的 int ,,所以,无法对共有资源加锁,

因为是对一个static 资源操作,所以我有的资源都是一个源头

class Buy extends Thread {

private static volatile Integer ticket = 50;
    private String name;
    public Buy(String name) {
        this.name = name;
    }
    @Override
    public void run() {
        synchronized (ticket) {
            while (ticket > 1) {
                System.out.println(name + "------" + ticket);
                ticket--;
            }
        }
    }
}
public class Main {
    public static void main(String[] args) {
        Buy buyA = new Buy("A");
        Buy buyB = new Buy("B");
        Buy buyC = new Buy("C");

buyA.start();
        buyB.start();
        buyC.start();
    }
}

java 实现多线程买票相关推荐

  1. Java之多线程买票程序

    Java之多线程买票程序 1.要求 要求五个线程,分别命名为售票窗口1.售票窗口 2.......售票窗口5, 一共100张票,每个售票窗口卖票的数量大致相同(20)张卖票时给与编号,每张票唯一. 每 ...

  2. java模拟多线程买票问题

    多线程买票是java中的一个经典案例,其主要思想无非包括2点,synchronized和锁,两者中,前者实现同步,后者为同步的线程提供锁,从而实现多个线程共享同一份资源时候,能够同步进行; 经典的方式 ...

  3. java 买票 多线程_java多线程买票问题

    自己写了一个多线程买票的实例,运行结果也对了,但是自己解释不了,谁能帮忙解释一下为什么结果会正确?import java.util.concurrent.ExecutorService; import ...

  4. java多线程买票实例

    3个窗口同时买票 * * 同步: * 1:同步代码块 * synchronized(锁对象(唯一)){ * * -需要被同步的代码 * * } * 2:同步方法 * 修饰符 synchronized ...

  5. java模拟火车站买票的过程_Java常用代理

    在我们通常的应用中,代理模式也是我们常用的设计模式之一.所谓的代理模式是指客户端并不直接调用实际的对象,而是通过调用代理对象,来间接的调用实际的对象. 为什么要采用这种间接的形式来调用对象呢?一般是因 ...

  6. java实验(多线程买票)

    题目: 编写一个Java多线程应用程序,完成三个售票窗口同时出售20张票.具体要求如下:票数要使用同一个静态值:为保证不会出现卖出同一个票数,要java多线程同步锁. 设计思路 创建一个站台类Stat ...

  7. Java线程同步-模拟买票

    文章首发于 2020-11-29 知乎文章:Java线程同步-模拟买票 作者:落雨湿红尘(也是我o) 01 导语 本文使用JAVA代码模拟买票场景下的业务交互,通过示例讲解线程的初始化.线程同步等ja ...

  8. java 小程序 多线程_《多线程练习—买票小程序——Java第十四周》

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:    < ...

  9. JAVA多线程作业-多人买票

    JAVA多线程作业 作业要求: 1. 假设现在有一个售票员进行售票,票价为5元,初始状态:票数不限,票售员手中有1张10元钱: 2. 每来一个顾客买票,相当于是创建一个线程,注意,此时顾客共享的资源是 ...

最新文章

  1. 判断ShellExecute函数是否执行完一个程序的方法
  2. Dubbo的静态服务
  3. pipe创建匿名管道`
  4. python中变量的基本使用及命名规则
  5. php 浮点型float 强转int php金额计算 php元转分
  6. hashmap应用场景_Redis 5种数据结构 及使用场景分析
  7. 前端学习(3061):vue+element今日头条管理-接口分页参数说明
  8. android最新设计规范,Android应用未来的设计规范
  9. maven 从入门到实战
  10. [转]Mysql FROM_UNIXTIME as UTC
  11. php订单号生成规则,项目笔记之订单号生成规则以及方法,第一篇!
  12. mysql mapinfo_MapInfo常见数据格式
  13. vncserver 设置过万的分辨率_修改vnc远程桌面分辨率,2种修改vnc远程桌面分辨率的方法...
  14. 数学4如何用计算机画正切函数图像,正切函数图像
  15. NFS服务器工作原理及权限设置
  16. 【链世纪对话系列No.9】浪潮存储资深架构师叶毓睿:浪潮如何助力分布式云存储数据中心快速发展?
  17. 开启虚拟机的时候出现不支持虚拟化的Intel VT-x/EPT
  18. 数字信号与模拟信号的区别(转载)
  19. 按照实际案例用常用的查壳去壳和加壳工具说明使用方法
  20. 华硕x550JK,i5改进

热门文章

  1. 小程序反馈功能并回显(包括前后端)
  2. 香港金管局正式推出商业数据通
  3. changtiger http://sites.google.com/site/o52tger/推荐一个网站给大家看下 !!!
  4. 二叉树遍历(Binary Tree Traversal)
  5. 第九届蓝桥杯C/C++B组---明码
  6. Linux中同步数据之scp VS rsync
  7. 我一个程序员的作息时间表及学习工作效率问题
  8. 外贸人怎么给客户发春节祝福和放假通知邮件快进来抄作业
  9. 计算机理论基础知识格林闭包,计算机基础知识题库801-1200.docx
  10. 新思科技招聘 | 5月热招职位(内推哦)