
玩玩并发
喜欢学习的小棉袄
这个作者很懒,什么都没留下…
展开
-
3万字长文带你复习JUC
在复习JUC之前,先搞明白什么情况下才能线程安全,也就是线程安全所具备的条件原子性有序性可见性那从上面这几个角度来考虑Synchronized和volatile的区别?Synchronized可以保证原子性,有序性,可见性volatile可以保证有序性和可见性,但是不能保证原子性还有一种类是绝对安全的,它就是不可变类(immutable),它的不可变也就意味着不能进行写操作,...原创 2020-03-20 22:03:14 · 251 阅读 · 1 评论 -
使用Lock和AQS实现自定义的互斥锁和重入锁
前言:在多线程并发中锁是非常重要的一部分,自己自定义实现锁有利于了解设计者思想,可以更好的学习,也有助于理解AQS的一些同步组件,如CountDownLatch,Semaphore,CyclicBarrier,ReentrantLock等。使用Lock来实现锁使用Lock实现锁很简单,只需要实现Lock接口,并对接口进行填补。互斥锁主要思想就是设置一个状态量,根据状态量来判断是否锁被占...原创 2019-05-18 23:53:45 · 449 阅读 · 0 评论 -
一些和AQS有关的同步组件和FutureTask的简单使用
1.CountDownLatch通过维护一个计数器来完成计数等待操作。必须使得count计数器到达0或者是超时才能向下执行(await)。下边就用简单的例子来进行演示@Slf4jpublic class CountDownLatchExample { //设置线程数200 private static final int count = 200; pu...原创 2019-05-19 23:52:40 · 252 阅读 · 0 评论 -
SpringBoot2.x结合ThreadLocal自定义简单的RequestHolder实现线程封闭
开篇:ThreadLocal就不多说了,想必这个大家都很熟悉了,实现单线程共享和安全的有效途径,下面是我在GitHub上的一篇浅析ThreadLocal!ThreadLocal的简单剖析目标:通过SpringBoot2.x的过滤器,拦截器和ThreadLocal实现简单的线程封闭。并且促进理解RequestContextHolder(持有上下文的Request容器,也是一个很好用的工具类...原创 2019-05-16 22:56:12 · 3224 阅读 · 0 评论