并发编程java
文章平均质量分 73
RCLack
技术之海一望无际, 记忆长流永无止境
展开
-
LongAdder 和 AtomicLong
有幸看到一篇关于这个讲解 2个类的讲解,自己也归纳总结一下。一、解析看源码底层会发现实现机制不一样,当然这个也是必须的LongAdder点进去之后会发现,CAS 它是一个CAS的实现类。至于Cell类JVM提供的内置函数官方说法是:仅支持原始访问和 CAS 的 AtomicLong 的填充变体。 JVM 内在函数注意:如果提供了 CAS,则可以在此处使用仅发布形式的 CAS。AtomicLong而Unsafe 官方自己说明一组不安全的方法,而Unsafe...原创 2024-03-31 10:23:26 · 2156 阅读 · 0 评论 -
并发容器
一、解释1.1 早期Vector 和 Hashtable1.1.1VectorVector synchronized修饰方法:1.1.2HashtableHashtable synchronized修饰方法:1.1.3Collections.synchronizedList()方法Collections.synchronizedList() 修饰对应的ArrayList、HashMap。查看源码:总之,是比历史的容器类优良点,使用的同步代码块。1...原创 2021-10-30 16:53:11 · 169 阅读 · 0 评论 -
Lock(四) 共享锁和排它锁
一、解释:排他锁:又称独占锁、独享锁。共享锁:又称读锁,获得共享锁之后,可以查看但无法修改和删除数据,其他线程此时也可以获取到共享锁,也可以查看但无法修改和删除数据。ReentrantReadWriteLock 其中读锁是共享锁,写锁是独享锁。1.2、读写锁规则。要么是一个或多个线程同时有读锁,要么是一个线程有写锁,但是两者不会同时出现(要么多读,要么多一写)。代码演示:public class CinemaReadWrite { private static Ree原创 2021-10-23 16:41:59 · 3157 阅读 · 0 评论