public class Test{public static void main(String[] args){TicketMachine tm=new TicketMachine();//定义三台机器同时售票Thread t1=new Thread(tm);Thread t2=new Thread(tm);Thread t3=new Thread(tm);t1.start();t2.start();t3.start();}
}class TicketMachine implements Runnable{private int nums=2000;//定义2000张票public void run(){while(true){try{Thread.sleep(1000);}catch(InterruptedException e){e.printStackTrace();}synchronized(this)//某个对象在使用times这个数据时,其他对象不能使用,这就是对象锁,否则会导致混乱{if(nums>0){System.out.println(Thread.currentThread().getName()+"正在售出第"+nums+"张票");nums--;}else break;}}}
}

java对象锁的使用相关推荐

  1. [转]Java 对象锁-synchronized()与线程的状态与生命周期

    线程的状态与生命周期 Java 对象锁-synchronized() ? 1 2 3 4 synchronized(someObject){ //对象锁 } 对象锁的使用说明: 1.对象锁的返还. 当 ...

  2. Java 对象锁和类锁全面解析

    2019独角兽企业重金招聘Python工程师标准>>> 最近工作有用到一些多线程的东西,之前吧,有用到synchronized同步块,不过是别人怎么用就跟着用,并没有搞清楚锁的概念. ...

  3. Java对象锁和类锁全面解析(多线程synchronized关键字)

    最近工作有用到一些多线程的东西,之前吧,有用到synchronized同步块,不过是别人怎么用就跟着用,并没有搞清楚锁的概念.最近也是遇到一些问题,不搞清楚锁的概念,很容易碰壁,甚至有些时候自己连用没 ...

  4. Java多线程----java 对象锁

    在并发环境下,解决共享资源冲突问题时,可以考虑使用锁机制. 1. 对象锁 所有对象都自动含有单一的锁.      JVM负责跟踪对象被加锁的次数.如果一个对象被解锁,其计数变为0.在任务(线程)第一次 ...

  5. Java多线程----java 对象锁(synchronized/lock)

    在并发环境下,解决共享资源冲突问题时,可以考虑使用锁机制. 1. 对象锁 所有对象都自动含有单一的锁.      JVM负责跟踪对象被加锁的次数.如果一个对象被解锁,其计数变为0.在任务(线程)第一次 ...

  6. Java 对象锁和类锁 死锁(多线程synchronized关键字)

    本文主要是将synchronized关键字用法作为例子来去解释Java中的对象锁 和 类锁. 对于同步,要时刻清醒在 哪个锁对象 上同步,这是关键. 对于同步代码块,要看清楚什么对象已经用于锁定(sy ...

  7. java 对象锁和类锁的区别

    1.一个类可以有多个对象,所以一个类可以有多个对象锁. 2.当一个类中有多个synchronized修饰的同步方法时,其中一个方法被线程访问持有锁,其他方法同样被锁住,其他线程依然不能访问其他同步方法 ...

  8. java对象锁与类锁区别

    假设我有一个类ClassA,其中有一个方法synchronized methodA(),那么当这个方法被调用的时候你获得就是对象锁,但是要注意,如果这个类有两个实例,比如:ClassA a = new ...

  9. java 对象锁_个人对java中对象锁与类锁的一些理解与实例

    一  什么是对象锁 对象锁也叫方法锁,是针对一个对象实例的,它只在该对象的某个内存位置声明一个标识该对象是否拥有锁,所有它只会锁住当前的对象,而并不会对其他对象实例的锁产生任何影响,不同对象访问同一个 ...

  10. java线程同步以及对象锁和类锁解析(多线程synchronized关键字)

    一.关于线程安全 1.是什么决定的线程安全问题? 线程安全问题基本是由全局变量及静态变量引起的. 若每个线程中对全局变量.静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的:若有多个线 ...

最新文章

  1. 2018-01-02 JavaScript实现ZLOGO: 用语法树实现多层循环...
  2. hibernate QBC检索方式查询
  3. python绘图模块pandas_python绘图:matplotlib和pandas的应用
  4. 常用的xshell用vi命令编辑文本
  5. 如何不使用Java 8默认方法
  6. 产品经理思维模型:产品生命周期
  7. 4核处理器_买电脑选4核、6核还是8核,从业是十年的专家终于讲清楚了差异
  8. 【Yarn】工作机制及任务提交流程
  9. jmeter安装和使用-个人总结
  10. mongodb lbs java_Spring-MongoDB与LBS
  11. Java中几种输出当前时间的代码
  12. Unity 贴图自动匹配材质工具 贴图自动添加到材质球工具 材质球匹配贴图工具 Substance Painter制作的贴图自动匹配材质球工具
  13. pppoe按需连接服务器无响应,pppoe服务器无响应怎么解决_pppoe拨号失败怎么办
  14. unity井字棋和一些重要概念(中山大学3D游戏作业2)
  15. android 读取 build.prop,读取 android /system/build.prop 的最简单方法
  16. php只获取年月日,php怎么实现date只显示年月日
  17. 一个画钟程序,终于做完了,作个记号
  18. 杜克大学计算机世界排名,杜克大学(Duke University)计算机科学Computer Science专业排名第51位(2021年THE世界大学商科排名)...
  19. ShareSDK Android 使用
  20. 联诚发顺利完成宝安区卓越绩效管理标准实施项目现场评审

热门文章

  1. SSL/TLS的X.509证书
  2. HDFS YARN zookeeper HBASE HIVE HIVE hwi的启动
  3. 凸优化第二章凸集 2.1 仿射集合和凸集
  4. MySQL查询语句常用函数总结
  5. MS SQL SERVER中的临时表
  6. 学习笔记:JS + 简单的PHP实现用户注册及登录
  7. bash算术求值和errexit陷阱
  8. 新闻发布系统,我学会了什么?
  9. 在 Windows 7 中安装和使用Windows XP Mode
  10. 移动金库模式保护客户信息 覆盖17套关键系统