java synchronized加载加锁-线程可重入详解及实例代码

 更新时间:2017年02月17日 11:47:18   投稿:lqh  
这篇文章主要介绍了java synchronized加载加锁-线程可重入详解及实例代码的相关资料,需要的朋友可以参考下

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 这种加锁机制,线程是可重入的。

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

相关文章

  • SpringCloud负载均衡实现定向路由详情

    SpringCloud负载均衡实现定向路由详情

    这篇文章主要介绍了SpringCloud负载均衡实现定向路由详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • Java之String、StringBuffer、StringBuilder的区别分析

    Java之String、StringBuffer、StringBuilder的区别分析

    今天搞安卓在看书的时候遇到了StringBuilder这个类型的东东,有点小迷,不知道它跟string、stringbuffer的关系式怎么样的,赶快查阅相关资料,了解了个大概,拿出来分享一下
    2012-11-11
  • springboot配置Jackson返回统一默认值的实现示例

    springboot配置Jackson返回统一默认值的实现示例

    在项目开发中,我们返回的数据或者对象没有的时候一般直接返回的null,那么如何返回统一默认值,感兴趣的可以了解一下
    2021-07-07
  • 基于Java实现简单的身材计算程序

    基于Java实现简单的身材计算程序

    这篇文章主要为大家详细介绍了如何利用Java实现简单的身材计算程序,可以计算身体的体脂率以及BMI数值等,感兴趣的小伙伴可以跟随小编一起学习一下
    2022-12-12
  • hadoop实现grep示例分享

    hadoop实现grep示例分享

    这篇文章主要介绍了hadoop实现grep示例,可从文档中提取包含某些字符串的行,需要的朋友可以参考下
    2014-03-03
  • java项目构建Gradle的使用教程

    java项目构建Gradle的使用教程

    这篇文章主要为大家介绍了java项目构建Gradle的使用教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-03-03
  • Spring-data-redis操作redis cluster的示例代码

    Spring-data-redis操作redis cluster的示例代码

    这篇文章主要介绍了Spring-data-redis操作redis cluster的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • 浅谈springboot与微服务架构

    浅谈springboot与微服务架构

    这篇文章主要介绍了浅谈springboot与微服务架构,SpringBoot是由 Pivotal团队提供的框架,其设计⽬的是⽤来简化新Spring应⽤,初始搭建以及开发过程,该框架使⽤了特定的⽅式来进⾏配置,需要的朋友可以参考下
    2023-07-07
  • 一个简陋的java图书管理系统

    一个简陋的java图书管理系统

    这篇文章主要为大家详细介绍了一个简陋的java图书管理系统,简单的实现功能测试,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • 微信公众号服务号推送模板消息设置方法(后端java)

    微信公众号服务号推送模板消息设置方法(后端java)

    公众号时经常会需要写推送消息,从网上找了一大堆,都不是很全,所以这篇文章主要介绍了微信公众号服务号推送模板消息设置方法的相关资料,需要的朋友可以参考下
    2023-02-02

最新评论