随笔分类 -  多线程

线程竞争 锁 多任务提交
摘要: 阅读全文
posted @ 2017-07-05 17:24 陶朱公Boy 阅读(159) 评论(0) 推荐(0)
摘要:在多线程环境中对于全局变量的使用,往往这个变量存在线程不安全性,通过将对象保存在ThreadLocal中,使得每个线程都拥有自己的对象,达到维持线程封闭性效果。 volatile变量上存在一种特殊的线程封闭。只要确保只有单个线程对共享的volatile变量执行写入操作,那么就可以完全的在这些共享volatile变量上执行“读取-修改-写入”操作。。。 生产环境中的案例: 登录 一般登录实现会选择在登录成功后 将user上下文对象封装在ThreadLocal对象内 ,其他线程需要用到登录的用户ID... 阅读全文
posted @ 2017-07-05 11:01 陶朱公Boy 阅读(208) 评论(0) 推荐(0)
摘要:指令重排序 as-if-serial 阅读全文
posted @ 2017-06-27 18:21 陶朱公Boy 阅读(1528) 评论(0) 推荐(0)
摘要:本篇文章我们来解决一个问题 这也是面试面的比较多的问题,进阶阶段(高级)一般都会问到。 volatile变量怎么保证可见性 为什么在并发情况下无法保证原子性? 比较懒了 摘了一段JVM原理的片段来描述语义: 这里只要记住尾部括号的三个点 1.从主内存到工作内存<读>:每次使用变量前 先从主内存中刷 阅读全文
posted @ 2017-05-29 21:50 陶朱公Boy 阅读(5034) 评论(1) 推荐(2)