Lock 中的 AQS、独占锁、重入锁、读锁、写锁、Condition 源码原理分析
前言 除去使用 synchronized 隐式加锁的方式外,我们可以使用 Lock 更加灵活的控制加锁、解锁、等待和唤醒等操作 Java 中的 Lock 有如下几种实现 重入锁(ReentrantLock) 读写锁(ReentrantRea...
前言 除去使用 synchronized 隐式加锁的方式外,我们可以使用 Lock 更加灵活的控制加锁、解锁、等待和唤醒等操作 Java 中的 Lock 有如下几种实现 重入锁(ReentrantLock) 读写锁(ReentrantRea...
引言 现目前处理分布式事务的方案有很多,比如 基于 XA 协议的方案 基于 TCC 协议方案 基于 SAGA 协议的方案 而实现了对应的协议的有 在 Java 中基于 XA 协议实现的框架有 Atomikos,JOTM 等框架 TCC 协议...
获取 IDEA 激活码、PyCharm 激活码、WebStorm 激活码和 DataGrip 激活码,提供详细破解教程与永久激活方法。支持 IDEA 永久激活与破解,免费获取注册码与激活码,解决 2024/2025 版本激活问题,轻松实现所有 JetBrains 工具的激活。
CAP 理论 一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这其中这两项 一致性(Consistency) 指所有节点在同一时间看到的...
总览线程池工作机制 新任务来到的时候,先去判断核心线程池数量(corePoolSize)满了没有,如果没有满那么创建一个 Worker 去执行这个任务。 某一时刻发现核心线程池数量满了,那么这个任务就暂时放到 workQueue 中去了。后...
简介 在 Java 中很多工具类都在使用 CAS(Compare And Set)用以提升并发的效率以及数据的准确性质。 concurrent 和 concurrent.atomic 下面的很多 AtomicInteger 等类 concu...
简介 在 jdk1.6 之前我们会说 synchronized 是个重量级锁,在此之后 JVM 对其做了很多的优化,之后使用 synchronized 线程在获取锁的时候根据竞争的状态可以是偏向锁、轻量级锁和重量级锁。 而在关于锁的技术中,...
要玩转 happens-before 我们需要先简单介绍下几个基本概念 高速缓存 随着 CPU 的快速发展它的计算速度和内存的读写速度差距越来越大,如果还是去读写内存的话那么 CPU 的处理速度就会收到内存读写速度的限制,为了弥补这种差距,...
阻塞 I/O 在这种 IO 模型的场景下,我们是给每一个客户端连接创建一个线程去处理它。不管这个客户端建立了连接有没有在做事(发送读取数据之类),都要去维护这个连接,直到连接断开为止。创建过多的线程就会消耗过高的资源,以 Java BIO ...
OOP-Klass Model(Ordinary Object Point-Klass Model)指的是普通对象指针,用来描述 java 类和对象在 JVM 中的表现形式,OOP 用来表示 java 实例在 JVM 中的表现,Klass ...
堆(Heap) 堆是一块线程共享的内存区域,用来存储对象,包括数组等 栈(VM Stack) java虚拟机栈:每个方法在访问的时候都会创建一个栈帧,栈帧是每个线程私有的内存,不会被其它线程访问到,用于保存方法中用到的参数、局部变量、返回值...