技术栈
juc
lee_curry
6 天前
java
·
线程
·
juc
·
threadlocal
·
中断
线程中断,等待,唤醒与ThreadLocal
第四章 线程中断,等待,唤醒与ThreadLocal3种让线程等待和唤醒的方法: 方式1:使用Object中的wait()方法让线程等待,使用Object中的notify()方法唤醒线程
小Y._
7 天前
java
·
源码分析
·
juc
·
aqs
AQS同步器核心原理深度剖析
AQS(AbstractQueuedSynchronizer)是Java并发包java.util.concurrent的核心基础组件,它是实现锁、信号量、倒计时门栓、循环屏障等同步器的基础。理解AQS的原理,对于深入掌握Java并发编程、阅读JUC源码、甚至自定义同步器都至关重要。本文将从设计思想、核心数据结构、源码实现三个维度全面解析AQS。
小Y._
8 天前
java
·
并发
·
juc
·
concurrenthashmap
ConcurrentHashMap高效并发机制深度解析
ConcurrentHashMap是Java并发包java.util.concurrent中最核心的组件之一,专为高并发场景设计。相比HashMap的线程不安全、Hashtable的性能低下,ConcurrentHashMap通过精巧的锁设计和无锁算法,实现了高性能与线程安全的完美平衡。本文将从源码角度深度剖析ConcurrentHashMap的实现原理。
lee_curry
10 天前
java
·
线程
·
并发
·
juc
Java中关于“锁”的那些事
第二章 Java中关于“锁”的那些事悲观锁:认为自己在使用数据的时候一定有别的线程来修改数据,因此在获取数据的时候会先加锁,确保数据不会被别的线程修改。 synchronized关键字和Lock的实现类都是悲观锁 适合写操作多的场景 乐观锁:认为自己在使用数据时不会有别的线程修改数据,所以不会添加锁,只是在更新数据的时候去判断之前有没有别的线程更新了这个数据。如果这个数据没有被更新,当前线程将自己修改的数据成功写入。如果数据已经被其他线程更新,则根据不同的实现方式执行不同的操作 Java中是通过使用无锁编
菜鸟小九
13 天前
java
·
开发语言
·
juc
JUC(共享模型之管程、synchronized、wait、park、活跃性、renetrantlock、条件变量)
一段代码内如果存在对共享资源的多线程读写操作,称这段代码为临界区竞态条件:多个线程在临界区内执行,由于代码执行序列不同导致结果无法预测,称之为竞态条件
lee_curry
14 天前
java
·
多线程
·
并发
·
juc
JUC第一章 java中基础概念和CompletableFuture
第一章 java中基础概念和CompletableFuture硬件方面:摩尔定律失效摩尔定律: 它是由英特尔创始人之一Gordon Moore(戈登·摩尔)提出来的。其内容为: 当价格不变时,集成电路上可容纳的元器件的数目约每隔18-24个月便会增加一倍,性能也将提升一倍。 换言之,每一美元所能买到的电脑性能,将每隔18-24个月翻一倍以上。这一定律揭示了信息技术进步的速度。 可是从2003年开始CPU主频已经不再翻倍,而是采用多核而不是更快的主频。
阿维的博客日记
16 天前
java
·
juc
什么是逃逸分析
逃逸分析的核心目的就是判断有没有多线程竞争,如果没有多线程竞争,就会删除锁,提高性能它的核心任务是:分析一个在方法内创建的对象,它的生命周期是否会超出这个方法的范围(即“逃出”当前方法的控制)。
阿维的博客日记
17 天前
java
·
juc
为什么 ConcurrentHashMap 采用 synchronized 加锁而不采用ReentrantLock
其实 ConcurrentHashMap 并不是完全放弃了原子操作。准确地说,它现在的设计策略是:先用原子操作(CAS),万不得已才动用 synchronized。
菜鸟小九
21 天前
java
·
juc
JUC(入门1-3章)
JMH性能测试工具windows:linux:javastart():启动一个新线程(进入就绪列表,不能多次调用) run():新线程启动后会调用这个方法(还是父线程执行) join():等待线程运行结束 join(long n):等待线程结束,最多等待n毫秒 getId():获取线程id getName(String):获取线程名 getPriority():获取线程优先级 setPriority(int):设置线程优先级 getState():获取线程状态 isInterrupted():是否被打断
长谷深风111
22 天前
线程
·
进程
·
juc
·
并发与并行
·
上下文切换(性能影响因素)
·
多线程(应用重点)
线程与进程:高效并发编程的核心奥秘
今天就主要来讲一下进程和线程部分的知识点,希望对于学习JUC的你会有所帮助!什么是上下文切换?这个部分呢还是有点小复杂的,后续在讲操作系统的时候会深入的去聊一下这个部分,在这里可以简单的理解一下就好:上下文切换,就是切换执行任务的过程
DJ斯特拉
1 个月前
java
·
jvm
·
juc
JUC基础
1.wait和sleep区别: wait是Object的方法,会释放锁。(在哪睡在哪醒) Sleep是Thread的方法,不释放锁。
庞轩px
1 个月前
java
·
并发编程
·
juc
·
aqs
·
reentrantlock
AQS(AbstractQueuedSynchronizer)源码深度解析:从CLH队列到ReentrantLock实现
在Java并发编程的世界里,AQS(AbstractQueuedSynchronizer)是一个里程碑式的存在。它是java.util.concurrent包的基石,ReentrantLock、CountDownLatch、Semaphore、CyclicBarrier等并发工具都是基于AQS构建的。
C++chaofan
1 个月前
java
·
开发语言
·
后端
·
性能优化
·
高并发
·
juc
·
容错机制
RPC框架容错机制深度解析
容错机制(Fault Tolerance)是指当服务调用失败时,系统能够自动采取补救措施,保证系统的可用性和稳定性。
C++chaofan
1 个月前
java
·
开发语言
·
负载均衡
·
juc
·
synchronized
·
锁
RPC框架负载均衡机制深度解析
负载均衡(Load Balancing)是分布式系统中的核心机制,用于在多个服务提供者之间分配请求流量。
曼彻斯特的海边
1 个月前
jvm
·
juc
·
synchronized
synchronized优化原理
synchronized 是 Java 中最基础的同步机制,从早期 JDK 版本的重量级锁(完全依赖操作系统互斥量实现),到 JDK 1.6 后的锁优化,其核心目标是减少锁竞争带来的性能开销,让同步操作更轻量。下面是由浅入深讲解它的优化原理。
C++chaofan
1 个月前
java
·
享元模式
·
并发编程
·
连接池
·
juc
·
不可变对象
JUC 并发编程:不可变对象、享元模式与自定义连接池 学习笔记
不可变对象是并发编程中线程安全的 “最优解”,无需任何同步手段即可保证多线程下的安全性,JUC 中诸多并发组件(如ConcurrentHashMap的键)均依赖不可变对象特性。
C++chaofan
2 个月前
java
·
开发语言
·
spring
·
java-ee
·
juc
·
synchronized
·
锁
JUC 并发编程:对可见性、有序性与 volatile的理解
在 Java 多线程编程中,可见性和有序性是并发问题的核心痛点,也是 Java 内存模型(JMM)需要解决的核心问题,JUC 并发包的诸多特性均围绕这两个问题设计,而volatile是 JMM 提供的轻量级解决手段。
西门吹雪分身
2 个月前
java
·
并发
·
juc
·
锁
JUC之公平锁与非公平锁
ReentrantLock抢票案例非公平锁演示: b没有抢到票,基本都被c抢了。 非公平锁改成公平锁后的效果
西门吹雪分身
2 个月前
java
·
juc
·
死锁
·
公平锁
·
非公平锁
JUC之可重入锁
可重入锁(又名递归锁) 可重入锁是指在同一个线程在外层方法获取锁的时候,再进入该线程的内层方法会自动获取锁(前提,锁对象得是同一个对象),不会因为之前已经获取过还没释放而阻塞。
长安城没有风
3 个月前
java
·
juc
Java 高并发核心编程 ----- 线程池原理与实践(上)
本文为读者阅读《Java 高并发核心编程 卷2》(作者:尼恩)后摘抄部分段落以及整合个人理解后重写书写,推荐感兴趣的朋友可以阅读一下原著,如果有侵权可以私信作者进行删除。