上一页 1 2 3 4 5 6 7 ··· 32 下一页
摘要: 一、基础概念 死锁是指两个或两个以上的进程(或线程)在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用, 它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。 比如:丈母娘要求先买房才能结婚,但是女婿说先结婚买房 二、产生死 阅读全文
posted @ 2025-06-04 02:56 jock_javaEE 阅读(99) 评论(0) 推荐(0)
摘要: 方案一、使用单线程线程池 我们可以使用 SingleThreadExecutor 这种线程池来执行任务,因为这个线程池中只有一个线程,所以它可以保证任务可以按照提交任务被顺序执行。 ExecutorService executor = Executors.newSingleThreadExecuto 阅读全文
posted @ 2025-06-04 02:13 jock_javaEE 阅读(186) 评论(0) 推荐(0)
摘要: 一、定义 happens-before原则是一种用于描述多线程程序中操作执行顺序的规则。它是Java内存模型(Java Memory Model,JMM)的一部分: 如果一个操作 A “happen-before” 另一个操作 B,那么 A 的结果对 B 是可见的。这个概念是理解线程间内存可见性的关 阅读全文
posted @ 2025-06-03 20:18 jock_javaEE 阅读(100) 评论(0) 推荐(0)
摘要: 一、AQS是如何实现线程的等待和唤醒的 ? AQS中线程等待和唤醒主要依赖 park 和 unpark 实现的。 当一个线程尝试获取锁或者同步器时,如果获取失败,AQS会将该线程封装成一个Node并添加到CLH等待队列中,然后通过 LockSupport.park() 将该线程阻塞。 当一个线程释放 阅读全文
posted @ 2025-06-02 21:13 jock_javaEE 阅读(37) 评论(0) 推荐(0)
摘要: 一、类结构 先看一下LinkedBlockingQueue类里面有哪些属性: public class LinkedBlockingQueue<E> extends AbstractQueue<E> implements BlockingQueue<E>, java.io.Serializable 阅读全文
posted @ 2025-05-28 21:14 jock_javaEE 阅读(40) 评论(0) 推荐(0)
摘要: 一、ArrayBlockingQueue类结构 先看一下ArrayBlockingQueue类里面有哪些属性: public class ArrayBlockingQueue<E> extends AbstractQueue<E> implements BlockingQueue<E>, java. 阅读全文
posted @ 2025-05-28 03:23 jock_javaEE 阅读(25) 评论(0) 推荐(0)
摘要: 一、Redis集群的脑裂定义 Redis集群的脑裂问题,是指在集群的主从节点中,同时存在 2 个主节点能够同时对客户端提供读写服务,而导致数据丢失 或者 不一致的问题 二、Redis的脑裂分类 哨兵(sentinel)模式下的脑裂 集群(cluster)模式下的脑裂 三、哨兵(sentinel)模式 阅读全文
posted @ 2025-04-29 20:14 jock_javaEE 阅读(309) 评论(0) 推荐(0)
摘要: 一、基础概念 主从复制存在一个问题,没法完成自动故障转移。所以我们需要一个方案来完成自动故障转移,它就是Redis Sentinel(哨兵) Redis Sentinel ,它由两部分组成,哨兵节点 和 数据节点 : 哨兵节点: 哨兵系统由一个或多个哨兵节点组成,哨兵节点是特殊的 Redis 节点, 阅读全文
posted @ 2025-04-28 21:09 jock_javaEE 阅读(58) 评论(0) 推荐(0)
摘要: 一、Redis主从复制的工作流程大概可以分为如下几步: 1、保存主节点(master)信息: 这一步只是保存主节点信息,保存主节点的 ip 和 port 2、主从建立连接: 从节点(slave)发现新的主节点后,会尝试和主节点建立网络连接 3、发送ping命令: 连接建立成功后从节点发送ping请求 阅读全文
posted @ 2025-04-28 17:46 jock_javaEE 阅读(22) 评论(0) 推荐(0)
摘要: 一、基础概念 RDB和AOF都有各自的缺点: 1、RDB是每隔一段时间持久化一次, 故障时就会丢失宕机时刻与上一次持久化之间的数据,无法保证数据完整性 2、AOF存储的是指令序列, 恢复重放时要花费很长时间并且文件更大 Redis 4.0 提供了更好的混合持久化选项: 创建出一个同时包含 RDB 数 阅读全文
posted @ 2025-04-28 13:56 jock_javaEE 阅读(37) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 ··· 32 下一页