日期归档:四月 11, 2014

深入分析Volatile的实现原理

引言

在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。

它在某些情况下比synchronized的开销更小,本文将深入分析在硬件层面上Inter处理器是如何实现Volatile的,通过深入分析能帮助我们正确的使用Volatile变量。

阅读全文 »

| 1 分2 分3 分4 分5 分 (4.33- 9票) Loading ... Loading ... | 归档目录:Java, 多线程编程, 算法数据结构 | 标签: , , |

写Java也得了解CPU缓存

CPU,一般认为写C/C++的才需要了解,写高级语言的(Java/C#/pathon…)并不需要了解那么底层的东西。我一开始也是这么想的,但直到碰到LMAX的Disruptor,以及马丁的博文,才发现写Java的,更加不能忽视CPU。经过一段时间的阅读,希望总结一下自己的阅读后的感悟。本文主要谈谈CPU缓存对Java编程的影响,不涉及具体CPU缓存的机制和实现。

现代CPU的缓存结构一般分三层,L1,L2和L3。如下图所示:

CPU三级缓存示意图

阅读全文 »

| 1 分2 分3 分4 分5 分 (4.14- 7票) Loading ... Loading ... | 归档目录:Java, 多线程编程, 算法数据结构 | 标签: , |

配置OpenStack Swift支持Amazon S3 API

首先需要Keystone支持S3格式的证书扩展,EC2的扩展只是能帮助Keystone识别和创建EC2证书,也就是AK和SK。EC2的证书和S3的证书是通用的。

默认的Keystone安装后并不支持S3扩展,需要修改Keystone的PasteDeploy配置文件,在ec2_extension之后加入s3_extension中间件,首先还需要定义该中间件,具体的修改过程为:

阅读全文 »

| 1 分2 分3 分4 分5 分 (4.55- 11票) Loading ... Loading ... | 归档目录:Amazon S3, Swift, 云计算/云存储, 存储技术 | 标签: , , , |
返回顶部