当前位置: 首页 > 面试题库 >

请说明一下synchronized的可重入怎么实现。

陆沈浪
2023-03-14
本文向大家介绍请说明一下synchronized的可重入怎么实现。相关面试题,主要包含被问及请说明一下synchronized的可重入怎么实现。时的应答技巧和注意事项,需要的朋友参考一下

考察点:锁

每个锁关联一个线程持有者和一个计数器。当计数器为0时表示该锁没有被任何线程持有,那么任何线程都都可能获得该锁而调用相应方法。当一个线程请求成功后,JVM会记下持有锁的线程,并将计数器计为1。此时其他线程请求该锁,则必须等待。而该持有锁的线程如果再次请求这个锁,就可以再次拿到这个锁,同时计数器会递增。当线程退出一个synchronized方法/块时,计数器会递减,如果计数器为0则释放该锁。

 类似资料:
  • 本文向大家介绍请你说明一下TreeMap的底层实现?相关面试题,主要包含被问及请你说明一下TreeMap的底层实现?时的应答技巧和注意事项,需要的朋友参考一下 考点:集合 TreeMap 的实现就是红黑树数据结构,也就说是一棵自平衡的排序二叉树,这样就可以保证当需要快速检索指定节点。 红黑树的插入、删除、遍历时间复杂度都为O(lgN),所以性能上低于哈希表。但是哈希表无法提供键值对的有序输出,红黑

  • 本文向大家介绍请你说一说stl里面set和map怎么实现的?相关面试题,主要包含被问及请你说一说stl里面set和map怎么实现的?时的应答技巧和注意事项,需要的朋友参考一下 集合,所有元素都会根据元素的值自动被排序,且不允许重复。 底层实现:红黑树 set 底层是通过红黑树(RB-tree)来实现的,由于红黑树是一种平衡二叉搜索树,自动排序的效果很不错,所以标准的 STL 的 set 即以 RB

  • 本文向大家介绍请你来说一说Redis的定时机制怎么实现的相关面试题,主要包含被问及请你来说一说Redis的定时机制怎么实现的时的应答技巧和注意事项,需要的朋友参考一下 参考回答: Redis服务器是一个事件驱动程序,服务器需要处理以下两类事件:文件事件(服务器对套接字操作的抽象)和时间事件(服务器对定时操作的抽象)。Redis的定时机制就是借助时间事件实现的。 一个时间事件主要由以下三个属性组成:

  • 本文向大家介绍请说明一下springIOC原理是什么?如果你要实现IOC需要怎么做?请简单描述一下实现步骤?相关面试题,主要包含被问及请说明一下springIOC原理是什么?如果你要实现IOC需要怎么做?请简单描述一下实现步骤?时的应答技巧和注意事项,需要的朋友参考一下 考察点:spring 参考回答: ①IoC(Inversion of Control,控制倒转)。这是spring的核心,贯穿始

  • 本文向大家介绍请你回答一下epoll怎么实现的?相关面试题,主要包含被问及请你回答一下epoll怎么实现的?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: Linux epoll机制是通过红黑树和双向链表实现的。 首先通过epoll_create()系统调用在内核中创建一个eventpoll类型的句柄,其中包括红黑树根节点和双向链表头节点。然后通过epoll_ctl()系统调用,向epol

  • 本文向大家介绍请你说明一下ConcurrentHashMap的原理?相关面试题,主要包含被问及请你说明一下ConcurrentHashMap的原理?时的应答技巧和注意事项,需要的朋友参考一下 考察点:JAVA内存模型 ConcurrentHashMap 类中包含两个静态内部类 HashEntry 和 Segment。HashEntry 用来封装映射表的键 / 值对;Segment 用来充当锁的角色