Synchronize锁重入

拥有锁重入的功能
就是在使用synchronize时,当一个线程得到了一个对象的锁之后
再次,请求该对象时,可以再次得到该对象的锁

package com.bjsxt.base.sync005;
/*** synchronized的重入**/
public class SyncDubbo1 {public synchronized void method1(){System.out.println("method1..");method2();}public synchronized void method2(){System.out.println("method2..");method3();}public synchronized void method3(){System.out.println("method3..");}public static void main(String[] args) {final SyncDubbo1 sd = new SyncDubbo1();Thread t1 = new Thread(new Runnable() {@Overridepublic void run() {sd.method1();}});t1.start();}
}

运行

说明
首先,调用synchronize修饰的method1
然后,再调用synchronize修改的method2
这样调用,没有任何问题,可以使用

Synchronize锁重入相关推荐

  1. Java 学习笔记之 Synchronized锁重入

    Synchronized锁重入: 当一个线程得到一个对象锁后,再次请求此对象锁时是可以再次得到该对象的锁.这也证明在一个Synchronized方法/块的内部调用本类的其他Synchronized方法 ...

  2. 【转载】Java多线程编程2--同步锁定--synchronized同步方法、脏读、锁重入

        线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏. 1.方法内的变量为线程安全   "非线程安全"问题存在于"实例变量"中,如果是方法内 ...

  3. 12.synchronized的锁重入、锁消除、锁升级原理?无锁、偏向锁、轻量级锁、自旋、重量级锁

    小陈:呼叫老王...... 老王:来了来了,小陈你准备好了吗?今天我们来讲synchronized的锁重入.锁优化.和锁升级的原理 小陈:早就准备好了,我现在都等不及了 老王:那就好,那我们废话不多说 ...

  4. syncnized锁重入

    分享链接:synchronized锁重入_给自己一个前行的动力-CSDN博客 笔记:在继承环境中子类可调用父类的同步方法. 在继承关系中,同步是不可继承的.

  5. 深入剖析基于并发AQS的(独占锁)重入锁(ReetrantLock)及其Condition实现原理

    [版权申明]未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/75043422 出自[zejian ...

  6. java读写锁死锁例子_Java并发关于重入锁与读写锁的详解

    这篇文章主要介绍了Java并发编程之重入锁与读写锁,文中相关实例代码详细,测试可用,具有一定参考价值,需要的朋友可以了解下. 重入锁 重入锁,顾名思义,就是支持重进入的锁,它表示该锁能够支持一个线程对 ...

  7. 老大吩咐的可重入分布式锁,终于完美的实现了~

    重做永远比改造简单 最近在做一个项目,将一个其他公司的实现系统(下文称作旧系统),完整的整合到自己公司的系统(下文称作新系统)中,这其中需要将对方实现的功能完整在自己系统也实现一遍. 旧系统还有一批存 ...

  8. 同步控制 之“重入锁”

    2019独角兽企业重金招聘Python工程师标准>>> 我们首先将介绍synchronized.Object.wait()和Object.notify()方法的替代品(或者说是增强版 ...

  9. 谈谈java并发锁(重入锁、读写锁、公平锁)

    目录 重入锁 简单重入锁 重入锁的等待通知(Condition) 多Condition 公平锁和非公平锁 读写锁ReentrantReadWriteLock 锁优化总结: 重入锁和读写锁,他们具有比s ...

最新文章

  1. 浅谈管理软件开发类项目是怎么来的,怎么接到项目的,欢迎大家补充
  2. QQ截屏 抓级联菜单、下拉菜单及右键弹出菜单图
  3. 解决Exchange的Client not authenticated问题
  4. 成功解决The subservice has not been subscribed.
  5. 为修复一个代码执行安全漏洞,TensorFlow决定不再支持YAML
  6. 170. Two Sum III - Data structure design【easy】
  7. C# 整数转二进制字符串
  8. bgll算法 matlab,一种复杂网络社区检测的方法与流程
  9. html的hello,world
  10. Linux安装Oracle,卡在60%处的解决方法
  11. 【聚类分析】基于matlab GUI K-means聚类分析【含Matlab源码 791期】
  12. MAC OS X 技术内幕 学习笔记之一 MAC OS的变迁
  13. 电子游戏发展史话——《doom启示录》读后感(三)
  14. 新库上线 | CnOpenData中国工业企业绿色专利及引用被引用数据简介
  15. 电子商务之部分名词解释
  16. wifi频率和zigbee干扰_设置Zigbee和wifi信道避免干扰的方法
  17. 计算机进制转换列表,计算机进制转换汇总
  18. 三层交换机配置的步骤
  19. 《计算机科学概论(第12版)》—第1章1.3节海量存储器
  20. dns和私人dns是什么意思?企业如何预防dns劫持?

热门文章

  1. (转)select、poll、epoll之间的区别
  2. http协议、cookie及session
  3. 【Eclipse】eclipse che 协作开发
  4. 无线研究 破解分享
  5. 人参的用法 和 吃法
  6. ASP.NET缓存之 没有为 SQL 缓存通知启用数据库“ReplaceShop”。
  7. MQTT数据处理之从tcp连接获取数据过程
  8. cond_resched()
  9. 手机突然电量消耗很快_手机突然出现这些故障!我来教你快速解决!
  10. 五种常用的异常值检测方法(均方差、箱形图、DBScan 聚类、孤立森林、Robust Random Cut Forest)