04 2023 档案
摘要:1、请你说说ConcurrentHashMap 数组+链表+红黑树、锁的粒度 ConcurrentHashMap的底层数据结构与HashMap一样,也是采用“数组+链表+红黑树”的形式 采用锁定头节点的方式降低了锁粒度,以较低的性能代价实现了线程安全。它的线程安全的实现机制: 初始化数组或头节点时,
阅读全文
摘要:1、如何利用Redis实现一个分布式锁? 为什么要实现分布式锁、实现分布式锁的方式 理论+实操:158、缓存-分布式锁-分布式锁原理与使用哔哩哔哩bilibili 实现分布式锁的方式: 方案一:SETNX + EXPIRE 方案二:SETNX + value值是(系统时间 + 过期时间) 方案三:使
阅读全文
摘要:1、请你说说死锁定义及发生的条件 得分点: 争夺共享资源、相互等待、互斥条件、请求和保持条件、不剥夺条件、环路等待条件 死锁定义: 两个或两个以上的进程在执行过程中,因争夺共享资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁。这些永远在互相等
阅读全文
摘要:1、请你说说多线程 得分点: 线程和进程的关系、为什么使用多线程 进程是操作系统资源调度的基本单位,线程是处理器任务调度和执行的基本单位,一个进程可以创建多个线程,每个线程有自己独立的程序计数器,本地方法栈和虚拟机栈,线程之间共享进程的堆和方法区。 线程之间是通过时间片算法来争夺CPU的执行权的。
阅读全文
摘要:Redis 报错“OutOfDirectMemoryError(堆外内存溢出) ”问题如下: 一、报错信息: 使用 Redis 的业务接口 ,产生 OutOfDirectMemoryError(堆外内存溢出),如图: 格式化后的报错信息: { "timestamp": "2023-04-17 22:
阅读全文