剖析为什么在多核多线程程序中要慎用volatile关键字?

这篇文章详细剖析了为什么在多核时代进行多线程编程时需要慎用volatile关键字。 主要内容有: 1. C/C++中的volatile关键字 2. Visual Studio对C/C++中volatile关键字的扩展 3. Java/.NET中的volatile关键字 4. Memo...

2015-03-26 20:41:03

阅读数:461

评论数:0

内存屏障与JVM并发

内存屏障,又称内存栅栏,是一组处理器指令,用于实现对内存操作的顺序限制。本文介绍了内存屏障对多线程程序的影响。我们将研究内存屏障与JVM并发机制 的关系,如易变量(volatile)、同步(synchronized)和原子条件式(atomic conditional)。本文假定读者已经充分掌握了相...

2015-03-26 20:14:18

阅读数:489

评论数:0

apache kafka技术分享系列(目录索引)

kafka开发与管理: 1)apache kafka消息服务 2)kafak安装与使用 3)apache kafka中server.properties配置文件参数说明 4)apache kafka中topic级别配置 5)Apache k...

2015-03-19 19:57:54

阅读数:619

评论数:0

Hack Dalvik VM解决Android 2.3 DEX/LinearAllocHdr超限

当安卓工程庞大到一定程度(代码结构渣到一定程度)的时候,就会遇到诸如最大方法数超过限制导致无法安装,Crash等问题。 相关关键词:Android 2.3 INSTALL_FAILED_DEXOPT 65535 问题的本质有两个 dx打包时限制了单个dx文件的最大方法数为65...

2015-03-10 18:39:58

阅读数:713

评论数:0

Android系统匿名共享内存Ashmem(Anonymous Shared Memory)驱动程序源代码分析

在上一文章Android系统匿名共享内存Ashmem(Anonymous Shared Memory)简要介绍和学习计划中,我们简要介绍了Android系统的匿名共享内存机制,其中,简要提到了它具有辅助内存管理系统来有效地管理内存的特点,但是没有进一步去了解它是如何实现的。在本文中,我们将通过分析...

2015-03-05 18:52:48

阅读数:608

评论数:0

Android系统匿名共享内存Ashmem(Anonymous Shared Memory)简要介绍和学习计划

在Android系统中,提供了独特的匿名共享内存子系统Ashmem(Anonymous Shared Memory),它以驱动程序的形式实现在内核空间中。它有两个特点,一是能够辅助内存管理系统来有效地管理不再使用的内存块,二是它通过Binder进程间通信机制来实现进程间的内存共享。本文中,我们将通...

2015-03-05 18:51:12

阅读数:664

评论数:0

CPU的工作过程

CPU的基本工作是执行存储的指令序列,即程序。程序的执行过程实际上是不断地取出指令、分析指令、执行指令的过程。 CPU从存放程序的主存储器里取出一条指令,译码并执行这条指令,保存执行结果,紧接着又去取指令,译码,执行指令……,如此周而复始,反复循环,使得计算机能够自动地工作。除非遇到停机指令...

2015-03-05 18:29:58

阅读数:663

评论数:0

优化屏障和内存屏障

优化屏障         编译器编译源代码时,会将源代码进行优化,将源代码的指令进行重排序,以适合于CPU的并行执行。然而,内核同步必须避免指令重新排序,优化屏障(Optimization barrier)避免编译器的重排序优化操作,保证编译程序时在优化屏障之前的指令不会在优化屏障之后执行。...

2015-03-05 17:35:09

阅读数:440

评论数:0

原子操作(1) - 用汇编实现原子操作

“最轻量级的锁”,通常也叫”原子操作”,之所以加引号是因为他们在汇编级别并不是原子操作,是用多条指令完成的,这些操作大多都是利用CPU支持的汇编指令.在某些构架过时的CPU体系结构上,它们应该是用比较重量级的线程内锁实现的吧(我的猜测). 最常见的原子操作有Compare and Exchang...

2015-03-05 16:56:27

阅读数:568

评论数:0

C/C++ Volatile关键词深度剖析

Volatile,词典上的解释为:易失的;易变的;易挥发的。那么用这个关键词修饰的C/C++变量,应该也能够体现出”易变”的特征。大部分人认识Volatile,也是从这个特征出发,而这也是本文揭秘的C/C++ Volatile的第一个特征。     Volatil...

2015-03-05 15:17:28

阅读数:430

评论数:0

MESI-CPU缓存一致性协议

MESI(Modified Exclusive Shared Or Invalid)(也称为伊利诺斯协议,是因为该协议由伊利诺斯州立大学提出)是一种广泛使用的支持写回策略的缓存一致性协议,该协议被应用在Intel奔腾系列的CPU中,详见“support the more efficient w...

2015-03-05 14:24:35

阅读数:417

评论数:0

Android 应用程序管理机制

android应用程序管理主要由PackageManager这个类来管理,实现PackageManager这个抽象类的是ContextImpl.java。在ContextImpl.java中,有一个内部静态类叫ApplicationPackageManager,实现了所有PackageManage...

2015-03-04 20:16:21

阅读数:637

评论数:0

关于SIGBUS的总结

From: by scz , 2.0 理解SIGBUS与SIGSEGV Q: SIGSEGV我能理解,但有时碰上SIGBUS,这该如何理解。 A: nkwht@SMTH nkwht用Google获取这样一些知识。有多种可能导致SIGBUS信号: ...

2015-03-03 12:00:17

阅读数:351

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭