
多线程
文章平均质量分 58
热爱coding的刺
努力学Java的小菜鸡。
展开
-
ConcurrentHashMap源码剖析03_addCount()方法详解
【代码】ConcurrentHashMap源码剖析03_addCount()方法详解。原创 2023-04-23 10:14:26 · 216 阅读 · 0 评论 -
ConcurrentHashMap源码剖析02_putVal()方法详解
【代码】ConcurrentHashMap源码剖析02_putVal()方法详解。原创 2023-04-22 15:45:44 · 169 阅读 · 0 评论 -
ConcurrentHashMap源码剖析01_常量、成员变量详解
【代码】ConcurrentHashMap源码剖析01_常量、成员变量详解。原创 2023-04-22 09:15:09 · 99 阅读 · 0 评论 -
LongAdder源码剖析_add()、longAccumulate()方法解析
LongAdder主要用于高并发下统计数据。原创 2023-04-20 20:29:04 · 177 阅读 · 0 评论 -
ReetrantLock源码剖析_03公平锁、非公平锁
方法,这个方法就是用来判断同步队列中是否存在比当前线程先入队的线程,公平锁需要遵循一个先来后到,而非公平锁不会遵守秩序,直接加锁。如果非公平锁加锁失败,程序就和公平锁的执行顺序类似了。非公平锁对锁的竞争是抢占式的,而且可以两次获取锁,这就提高了获取锁的可能性。失败了,就说明,当前环境中有其他线程正在争夺锁,并且当前线程加锁失败。成功,就直接将锁的持有者设置为当前线程,体现了非公平锁的非公平性。与公平锁不同的是,非公平锁的加锁是通过调用。就以公平锁的方式进行工作,因此当。以公平锁方式进行加锁时,调用的时。原创 2023-04-19 19:58:51 · 464 阅读 · 0 评论 -
ReetrantLock源码剖析_02内部类NoFairSync、构造器
非公平锁的主要实现类,原创 2023-04-18 20:04:46 · 125 阅读 · 0 评论 -
ReetrantLock源码剖析_01内部类Sync、FairSync
ReetrantLock源码解析,不会的小伙伴快来看看吧~原创 2023-04-18 19:10:05 · 169 阅读 · 0 评论 -
Java并发基石_CAS原理实战02_CAS实现原理
CAS,全称,比较并替换。CAS包含了三个操作数,内存位置值V,期望值A,新值B,如果内存位置值V与期望值A匹配,处理器就将内存位置值更新为新值B,否则不做任何操作。无论发生哪种情况,它都会在CAS指令之前返回该位置的值。类中提供了对CAS操作的支持/**/**/**表示要操作的对象表示要操作对象中属性地址的偏移量表示期望值表示新值CAS操作需要在操作值的时候判断值有没有变化,如果没有变化则更新。但是如果一个值原来是A,在CAS方法执行之前,另一个线程先把A的值修改为B,然后又修改为A。原创 2023-04-18 15:55:42 · 545 阅读 · 0 评论 -
Java并发基石_CAS原理实战01_CAS机制入门
开发一个网站,对访问量进行统计,用户每发送一次请求,访问量就+1,模拟有100个人同时访问,并且每个人对网站发起10次请求,所以理论上访问量应该是1000。原创 2023-04-18 09:23:18 · 242 阅读 · 0 评论 -
Java实习生------JUC并发编程面试题打卡(synchronized、volatile)⭐⭐⭐
volatile读的内存语义是:当读一个volatile变量时,JMM会把该线程对应的本地内存置为无效,线程接下来需要到主内存中读取变量;ThreadLocal是线程变量,ThreadLocal中所填充的变量只属于当前线程,对其他线程而言是隔离的,ThreadLocal为变量在每个线程中都创建了一个变量副本,每个线程可访问自己内部的变量副本。在多线程的环境下,当有多个线程对单个变量进行操作时,具有排他性,即当多个线程同时对该变量的值进行更新时,只有一个线程能操作成功,未成功的线程会继续尝试,直到成功为止。原创 2023-03-24 15:44:13 · 373 阅读 · 0 评论 -
Java实习生------JUC并发编程面试题(ConcurrentHashMap、BlockingQueue、ReetrantLock、semaphore)附源码解析⭐⭐⭐
JUC并发编程面试题汇总,CopyOnWriteArrayList等源码解析原创 2023-03-23 16:11:53 · 250 阅读 · 0 评论 -
Java实习生------JUC并发编程(多线程)10道面试题打卡(AQS队列同步器、线程池)⭐⭐⭐
JUC并发包面试题详解。原创 2023-03-23 10:47:14 · 596 阅读 · 0 评论 -
Java实习生------JUC并发编程(多线程)10道面试题打卡⭐⭐⭐
它认为多线程同时修改资源的概率比较高,很容易出现冲突,所以它在访问资源之前需要先加锁,synchronized就是基于这种思想;主要用于写比较多的情况它会先修改资源,再验证这段时间内有没有其他线程正在修改资源,如果没有,那么操作完成;如果有,就放弃本次操作;因为它全程没有加锁,所以又叫无锁编程;主要用于多读或者加锁成本比较高的场景版本号机制:在数据表中添加了version字段,表示数据被修改的次数。当数据被修改时,version加1。原创 2023-03-22 14:13:07 · 368 阅读 · 0 评论