随笔分类 -  多线程

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

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