对于CPU伪内存共享问题学习

事情由来是对于Log4j2中存在两种异步处理日志的方式,AsyncAppender和AsyncLogger两种,一个是基于BlockingQueue实现,一个是基于Disruptor实现的。。

而Disruptor是无锁的方式,环形队列,对于队首尾都是采用数据padding的方式解决伪共享的问题。。

对于CPU的伪共享参见:http://coderplay.iteye.com/blog/1485760http://coderplay.iteye.com/blog/1486649

在伪共享的方面也解释了为什么对于二维数组为什么,先行后列,比先列后行的遍历快很多。。

对于多核多线程编程的应用中,这种伪共享的现象很多。。。

对于java中的存在的这种现象可以参见:https://www.ibm.com/developerworks/java/library/j-codetoheap/index.html

大神们已经做了很浅显的解释,我在这里只是为了Mark一下。


由此也引出了另一个有趣的集合框架:WeakHashMap 。。特别适合缓存系统。

关于WeakHashMap的相关用法介绍可以参见:http://www.importnew.com/23182.html

其中说到比较有意思的地方就是WeakReference不会影响,GC的操作,也就是说可达性分析的话应该会直接跳过WeakReference。。

在IBM对于系统中使用的集合框架做统计的时候这个集合竟然排名第二,可见其威力也是挺厉害的,,目前在接触的系统里面还没有接触到这类用发。。。》》》


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值