![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发编程
文章平均质量分 68
咕了个咕
这个作者很懒,什么都没留下…
展开
-
Spring + Shiro 线程复用时session获取问题
项目上使用Shiro框架,在使用多线程进行业务处理的时候,发现用shiro获取到的session不对源码追踪,查找原因Shiro获取sessionSession session = SecurityUtils.getSubject().getSession()然后我们往下看 SecurityUtils 的 getSubject() 方法 /** * Returns the currently accessible {@code Subject} available to t.原创 2021-06-28 11:23:32 · 1026 阅读 · 0 评论 -
线程同步的几种手段-JUC
一、同步手段的简单介绍JUC即 java.util.concurrent 包,里面提供了很多用于线程同步的类,下面我们来简单列举一下线程同步的手段:手动编程,使用同步关键字volatile 关键字,为变量添加内存屏障,禁止指令重排优化,只能保证变量可见性,不能保证原子性synchronized关键字,在进行数据对比修改的地方加上同步wait、notify、notifyAll等方...原创 2020-04-13 10:39:32 · 417 阅读 · 0 评论 -
CAS(比较并交换)详解
一、什么是CAS?CAS(Compare And Swap),就是比较并交换,是解决多线程情况下,解决使用锁造成性能损耗问题的一种机制。CAS包含三个操作数:变量内存位置(V)预期的变量原值(A)变量的新值(B)当要对变量进行修改时,先会将内存位置的值与预期的变量原值进行比较,如果一致则将内存位置更新为新值,否则不做操作,无论哪种情况都会返回内存位置当前的值。二、CAS的实践案例...原创 2020-04-07 10:22:22 · 3703 阅读 · 5 评论