package day04;
/*** 有效的缩小同步范围可以在保证并发安全的前提下尽可* 能提高并发效率。* * 同步块可以更准确的控制需要同步运行的代码片段。* synchronized(同步监视器) {*      需要同步运行的代码片段* }* * 同步监视器是java中任意的一个对象,只要保证多个线程* 看到的该对象是“同一个”,即可保证同步块中的代码是并发安全的。* @author Administrator**/
public class SyncDemo2 {public static void main(String[] args) {final Shop shop = new Shop();Thread t1 = new Thread() {public void run() {shop.buy();}};Thread t2 = new Thread() {public void run() {shop.buy();}};t1.start();t2.start();}
}   
package day04;public class Shop {public void buy() {Thread t = Thread.currentThread();try{System.out.println(t.getName()+":正在挑衣服...");Thread.sleep(5000);synchronized(this) {System.out.println(t.getName()+":正在试衣服...");Thread.sleep(5000);}System.out.println(t.getName()+":结账离开.");}catch(Exception e) {e.printStackTrace();}       }
}

Java——同步监视器相关推荐

  1. Java 同步监视器中的 wait() 和 notify() 方法的具体实现

    在Oracle JVM 1.6 里面实现的object的wait 和notify方法是在synchronizer.cpp里实现. 先介绍2个对象: 1. ObjectMonitor  对象 主要用来监 ...

  2. java同步与死锁_Java多线程 - 线程同步与死锁

    一.线程同步 1)模拟多个用户同时从银行账户里面取钱 ● Account 类:银行账户类,里面有一些账户的基本信息,以及操作账户信息的方法 //模拟银行账户 classAccount {private ...

  3. java 同步方式 lock_Java的同步锁(Lock)

    从Java 5开始,Java提供了一种功能更强大的线程同步机制一-通过 显式定义同步锁对象来实现同步,在这种机制下,同步锁由Lock对象充当.Lock提供了比synchronized方法和synchr ...

  4. java同步锁实例_Java lock同步锁使用实例解析

    这篇文章主要介绍了Java lock同步锁使用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1)Lock是一个接口,而synchroniz ...

  5. java 同步块关键字_Java同步关键字,同步方法和块

    java 同步块关键字 Java synchronized keyword is used in multithreading to create a code block that can be e ...

  6. Java同步之synchronized

    Java中可以使用关键字synchronized进行线程同步控制,实现关键资源顺序访问,避免由于多线程并发执行导致的数据不一致性等问题.synchronized的原理是对象监视器(锁),只有获取到监视 ...

  7. 【线程同步】 Java 同步块(synchronized)详细说明

    我们在java开发中常常用synchronized( 互斥锁)来进行同步,但是对于 synchronized关键字有那些用法,会产生什么样的效果却不一定清楚,下面将详细介绍synchronized在程 ...

  8. Java中监视器和锁

    Java中监视器和锁 监视器和锁在Java虚拟机中是一块使用的.监视器监视一块同步代码块,确保一次只有一个线程执行同步代码块.每一个监视器都和一个对象引用相关联.线程在获取锁之前不允许执行同步代码. ...

  9. 死磕 java同步系列之ReentrantReadWriteLock源码解析

    问题 (1)读写锁是什么? (2)读写锁具有哪些特性? (3)ReentrantReadWriteLock是怎么实现读写锁的? (4)如何使用ReentrantReadWriteLock实现高效安全的 ...

最新文章

  1. Mybait缓存机制
  2. SharePoint 检测页面编辑模式
  3. 【Git】cannot create directory invalid argument
  4. AttributeError: module 'networkx' has no attribute 'draw_graphviz'解决方案
  5. 关于USB-AUDIO使用ALSA编程的一点问题
  6. target存放的是编译后的.class文件地方 默认情况下不会讲非class文件放入进入 如果要使用非.class文件 需要通过增加配置方式自动加入文件...
  7. 什么是Mockito Extra接口?
  8. 使用delphi 开发多层应用(十)安全访问服务器
  9. Ext.ClassManager源码
  10. 剑指offer python版 数组中只出现一次的两个数字
  11. 中小学教师计算机应用,关于中小学教师计算机应用教育的思考
  12. java视频压缩 lz4_压缩包格式有哪些?
  13. 出海推荐 (出海服务器盘点)
  14. 数据建模:个人信用分是如何计算出来的?
  15. 低门槛,多玩法打金游戏 Tiny World
  16. 学 Win32 汇编[24] - 移位: SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR、SHLD、SHRD
  17. 青软集团U+新工科智慧云平台助力西北民族大学编程竞赛成功举办!
  18. PHP抖音无水印解析api
  19. 三种方式获取大疆照片的EXIF/XMP信息(附测试代码)
  20. 沃尔夫奖得主伊藤清:数学与概率论的历史

热门文章

  1. SEO优化网站教程6
  2. 亚马逊批量注册账号流程
  3. 培养前端小姐姐的八个小技巧
  4. SpringBoot下载文件打不开的解决办法
  5. springboot+swagger 报“Whitelabel Error Page“解决
  6. MEA和PEM燃料电池市场现状及未来发展趋势分析
  7. linux挂盘视频教程,Linux新手入门教程:教你硬盘挂载方法
  8. 非常简单的录音转文字方法
  9. Android http网络请求设置以及设置网络权限
  10. java poi读取excel,2147483647问题