随笔分类 -  多线程与高并发

java多线程与高并发
摘要:学习Guava的笔记 阅读全文 »
posted @ 2021-02-18 23:05 等不到的口琴 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 本文主要浅析CopyOnWriteList使用以及原理。 阅读全文 »
posted @ 2021-02-18 21:58 等不到的口琴 阅读(241) 评论(0) 推荐(0) 编辑
摘要:本系列研究总结高并发下的几种同步锁的使用以及之间的区别,分别是:ReentrantLock、CountDownLatch、CyclicBarrier、Phaser、ReadWriteLock、StampedLock、Semaphore、Exchanger、LockSupport,这是第三篇,主要总结Semaphore、Exchanger、LockSupport。 阅读全文 »
posted @ 2021-02-17 08:42 等不到的口琴 阅读(522) 评论(0) 推荐(1) 编辑
摘要:本系列研究总结高并发下的几种同步锁的使用以及之间的区别,分别是:ReentrantLock、CountDownLatch、CyclicBarrier、Phaser、ReadWriteLock、StampedLock、Semaphore、Exchanger、LockSupport,这是第二篇,主要总结Phaser、ReadWriteLock、StampedLock。 阅读全文 »
posted @ 2021-02-16 21:52 等不到的口琴 阅读(657) 评论(0) 推荐(0) 编辑
摘要:本系列研究总结高并发下的几种同步锁的使用以及之间的区别,分别是:ReentrantLock、CountDownLatch、CyclicBarrier、Phaser、ReadWriteLock、StampedLock、Semaphore、Exchanger、LockSupport,这是第一篇,主要总结ReentrantLock、CountDownLatch、CyclicBarrier。 阅读全文 »
posted @ 2021-02-16 15:29 等不到的口琴 阅读(1250) 评论(0) 推荐(0) 编辑
摘要:本文简单梳理了volatile和synchronized的区别,以及volatile读写流程。 阅读全文 »
posted @ 2021-02-14 12:19 等不到的口琴 阅读(1287) 评论(0) 推荐(0) 编辑
摘要:Queue(队列)主要是为了高并发准备的容器Deque:双端队列,可以反方向装或者取 最开始jdk1.0只有Vector和hashtable 默认所有方法都实现了synchronized锁,线程安全但性能比较差,因此后续SUN意识到这个问题之后加了完全没加锁的hashmap,但是由于Hashmap完 阅读全文 »
posted @ 2020-04-21 20:58 等不到的口琴 阅读(1316) 评论(0) 推荐(0) 编辑
摘要:情景引入 ThreadLocal 在什么情况下可能发生内存泄漏?如果想清楚这个问题的来龙去脉,看源码是必不可少的,看了源码之后你发现,实际 ThreadLocal 中实际用到 static class Entry extends WeakReference> {} ,谜底实际就是使用了弱引用 Wea 阅读全文 »
posted @ 2020-04-21 12:23 等不到的口琴 阅读(436) 评论(0) 推荐(0) 编辑
摘要:使用场景:常用于使用有限的资源,限制线程并发的最大数量。默认情况下,信号量是非公平性的(先等待先执行为公平。类似于买东西的时候大家排队付款,先来的先付款是公平的。但是这时候有人插队,那就是非公平的)设定信号量的最大个数:Semaphore semaphore=new Semaphore(3); 获取 阅读全文 »
posted @ 2020-04-18 16:03 等不到的口琴 阅读(184) 评论(0) 推荐(0) 编辑
摘要:使用场景: 多个线程相互等待,直到都满足条件之后,才能执行后续的操作。CyclicBarrier描述的是各个线程之间相互等待的关系。 使用步骤: 正常实例化:CyclicBarrier sCyclicBarrier=new CyclicBarrier(3); 带runnable的实例化,打破屏障时, 阅读全文 »
posted @ 2020-04-18 12:47 等不到的口琴 阅读(236) 评论(0) 推荐(0) 编辑
摘要:使用场景: 一个或N个线程,等待其它线程完成某项操作之后才能继续往下执行。CountDownLatch描述的是,一个或N个线程等待其他线程的关系。 使用方法: 设CountDownLatch个数:CountDownLatch countDownLatch=new CountDownLatch(3); 阅读全文 »
posted @ 2020-04-18 12:42 等不到的口琴 阅读(196) 评论(0) 推荐(0) 编辑
摘要:CAS中的ABA问题CAS(V,Expected,NewValue),CAS自旋时,如果操作途中Expected值没有改变则会赋予其新的值(NewValue),如果发生改变则会将改变后的值赋给Expected重新进行上一步操作,但是这中间如果有其他线程将Expected的值改变为N之后又改回Expe 阅读全文 »
posted @ 2020-04-17 18:12 等不到的口琴 阅读(154) 评论(0) 推荐(0) 编辑
摘要:Class文件加载到同一个ClassLoader空间中是单例的,如果是不同的classloader则不是单例。 synchronized如果加在静态方法中,则锁住的是类(一般方法中锁住的是this),等同于synchronize(T.class)。 synchronized锁住的任何对象,看对象头顶 阅读全文 »
posted @ 2020-04-16 22:57 等不到的口琴 阅读(217) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示