java synchronized加载加锁-线程可重入

实例代码:

public class ReGetLock implements Runnable {

@Override

public void run() {

get();

}

public synchronized void get() {

System.out.println(Thread.currentThread().getId());

set();

}

public synchronized void set() {

System.out.println(Thread.currentThread().getId());

}

public static void main(String[] args) {

ReGetLock rgl = new ReGetLock();

new Thread(rgl).start();

}

}

执行代码的线程到底能不能进入到set方法呢?

因为线程rgl先调用了get方法,获取到了ReGetLock对象的锁,那么当线程rgl想进入标有synchronized 关键字的set方法时,会被阻塞住,一直等待吗?

其实是不会的,在JAVA里面,当某个线程试图获得一个已经由它自己持有的锁,那么这个请求会成功。不然会出现死锁。

因此像synchronized 这种加锁机制,线程是可重入的。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

java 线程重入,java synchronized加载加锁-线程可重入详解及实例代码相关推荐

  1. Java 线程池详解及实例代码

    转载自  Java 线程池详解及实例代码 这篇文章主要介绍了Java 线程池的相关资料,并符实例代码,帮助大家学习参考,需要的朋友可以参考下 线程池的技术背景 在面向对象编程中,创建和销毁对象是很费时 ...

  2. 加载、滑动翻阅大量图片解决方案详解

    加载.滑动翻阅大量图片解决方案详解 今天分享一下私人相册中,读取加载.滑动翻阅大量图片解决方案,我想强调的是,编程思想无关乎平台限制. 我要详细说一下,在缩略图界面点击任意小缩略图后,进入高清大图全屏 ...

  3. iOS开发——加载、滑动翻阅大量图片解决方案详解

    目录(?)[-] 常规思路流程 使用低分辨率图 多线程任务 优化快速翻阅体验 最后还一个砍儿 加载.滑动翻阅大量图片解决方案详解 今天分享一下私人相册中,读取加载.滑动翻阅大量图片解决方案,我想强调的 ...

  4. iOS开发——加载、滑动翻阅大量图片解决方案详解 .

    加载.滑动翻阅大量图片解决方案详解 今天分享一下私人相册中,读取加载.滑动翻阅大量图片解决方案,我想强调的是,编程思想无关乎平台限制. 我要详细说一下,在缩略图界面点击任意小缩略图后,进入高清大图全屏 ...

  5. java super实例_java Super 用法详解及实例代码

    java Super 用法详解及实例代码 发布于 2021-1-8| 复制链接 摘记: java  Super 用法详解 1)有人写了个很好的初始化属性的构造函数,而你仅仅想要在其中添加另一些自己新建 ...

  6. Android平滑图片加载和缓存库Glide使用详解

    在图片加载库烂大街的今天,选择一个适合自己使用的图片加载库已经成为了每一个Android开发者的必经之路.现在市面上知名的图片加载库有UIL,Picasso,Volley ImageLoader,Fr ...

  7. java的连接 初始化_java类从加载、连接到初始化过程详解

    Java代码在编译后会转化成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化成汇编指令在CPU上执行,Java中所使用的并发机制依赖于JVM的实现和CPU的指令. 类加载 ...

  8. Java进阶 23种设计模式 详解+应用+实例代码

    文章目录 前言 设计模式六大原则 1.单一原则 (1) 概念 (2) 优点 2.开闭原则 (1) 概念 3.里氏替换原则 (1) 概念 4.依赖倒置原则 (1) 概念 (2) 作用 5.接口隔离原则 ...

  9. java弱引用在安卓中有效吗_Android 软引用和弱引用详解及实例代码

    Android 软引用 和 弱引用 1.  SoftReference:软引用-->当虚拟机内存不足时,将会回收它指向的对象:需要获取对象时,可以调用get方法. 2.  WeakReferen ...

最新文章

  1. 【深度学习】利用一些API进行图像数据增广
  2. wsdl文件是怎么生成的_电子标书怎么做需要注意的事项,您学会了吗?
  3. 编写批处理文件编译.Net工程
  4. F-Stack KNI配置注意事项
  5. 有哪些朋友圈励志说说短句?
  6. 中兴被逼入绝境,或将出售手机业务?
  7. TCP、UDP绑定同一端口通信的解释-转
  8. SharePoint列表下拉框优化
  9. python入门代码大全-python入门代码指南教程书籍推荐2020总结全集汇总
  10. javascript css函数一设置/读取对象的属性(Style对象与CurrentStyle对象、getComputedStyle)及其小案例
  11. java源代码解除断点_此断点目前不会被命中,源代码与原始代码不同(即使在清理/重建后)...
  12. 计算机组成原理课后答案蒋本,计算机组成原理习题答案(蒋本珊).doc
  13. python 爬取公众号文章_python批量爬取公众号文章
  14. mipi的dsi全称_MIPI DSI协议介绍
  15. 一层神经网络实现鸢尾花数据集分类
  16. Windows防火墙无法更改某些设置
  17. 计算机管理无法连接虚拟磁盘服务,win10系统电脑打开磁盘管理出现“无法连接虚拟磁盘服务”的教程...
  18. 常见网络安全产品汇总(私信发送思维导图)
  19. 联合分布(一):什么是概率分布
  20. 【conda安装】mamba安装 ==conda安装记录

热门文章

  1. bresenham算法画圆mfc实现_kd-tree理论以及在PCL 中的代码的实现
  2. Linux环境安装redis
  3. Appfuse:扩展自己的GenericManager
  4. Java单例模式实现(线程安全)
  5. python error: no module named pylab的解决
  6. 处理顶点——通过切线空间的凹凸映射添加逐像素细节
  7. 权限数据库设计(Sql Server)
  8. python连接linux后一步一步的操作_Python使用技巧
  9. 基于Python-turtle库绘制哆啦A梦
  10. No module named ‘yaml‘错误解决办法