- 博客(13)
- 资源 (14)
- 收藏
- 关注
转载 剖析为什么在多核多线程程序中要慎用volatile关键字?
这篇文章详细剖析了为什么在多核时代进行多线程编程时需要慎用volatile关键字。主要内容有:1. C/C++中的volatile关键字2. Visual Studio对C/C++中volatile关键字的扩展3. Java/.NET中的volatile关键字4. Memory Model(内存模型)5. Volatile使用建议1. C/C++中的volati
2015-03-26 20:41:03 622
转载 内存屏障与JVM并发
内存屏障,又称内存栅栏,是一组处理器指令,用于实现对内存操作的顺序限制。本文介绍了内存屏障对多线程程序的影响。我们将研究内存屏障与JVM并发机制 的关系,如易变量(volatile)、同步(synchronized)和原子条件式(atomic conditional)。本文假定读者已经充分掌握了相关概念和Java内存模型,不讨论并发互斥、并行机制和原子性。内存屏障用来实现并发编程中称为 可见性(v
2015-03-26 20:14:18 656
转载 apache kafka技术分享系列(目录索引)
kafka开发与管理:1)apache kafka消息服务2)kafak安装与使用3)apache kafka中server.properties配置文件参数说明4)apache kafka中topic级别配置5)Apache kafka客户端开发-java6)kafka的ZkUtils类的java版本部分代码
2015-03-19 19:57:54 1141
转载 Hack Dalvik VM解决Android 2.3 DEX/LinearAllocHdr超限
当安卓工程庞大到一定程度(代码结构渣到一定程度)的时候,就会遇到诸如最大方法数超过限制导致无法安装,Crash等问题。相关关键词:Android 2.3 INSTALL_FAILED_DEXOPT 65535问题的本质有两个dx打包时限制了单个dx文件的最大方法数为65535Dalvik VM限制内存中加载的方法数(方法,类定义及构造函数)不能超过65535个
2015-03-10 18:39:58 913
转载 Android系统匿名共享内存Ashmem(Anonymous Shared Memory)驱动程序源代码分析
在上一文章Android系统匿名共享内存Ashmem(Anonymous Shared Memory)简要介绍和学习计划中,我们简要介绍了Android系统的匿名共享内存机制,其中,简要提到了它具有辅助内存管理系统来有效地管理内存的特点,但是没有进一步去了解它是如何实现的。在本文中,我们将通过分析Android系统的匿名共享内存Ashmem驱动程序的源代码,来深入了解它是如何辅助内存管理系
2015-03-05 18:52:48 811
转载 Android系统匿名共享内存Ashmem(Anonymous Shared Memory)简要介绍和学习计划
在Android系统中,提供了独特的匿名共享内存子系统Ashmem(Anonymous Shared Memory),它以驱动程序的形式实现在内核空间中。它有两个特点,一是能够辅助内存管理系统来有效地管理不再使用的内存块,二是它通过Binder进程间通信机制来实现进程间的内存共享。本文中,我们将通过实例来简要介绍Android系统的匿名共享内存的使用方法,使得我们对Android系统的匿名共享内存
2015-03-05 18:51:12 843
转载 CPU的工作过程
CPU的基本工作是执行存储的指令序列,即程序。程序的执行过程实际上是不断地取出指令、分析指令、执行指令的过程。CPU从存放程序的主存储器里取出一条指令,译码并执行这条指令,保存执行结果,紧接着又去取指令,译码,执行指令……,如此周而复始,反复循环,使得计算机能够自动地工作。除非遇到停机指令,否则这个循环将一直进行下去。其过程如图3-3所示几乎所有的冯•诺伊曼型计算机的CPU,其工作
2015-03-05 18:29:58 2205
转载 优化屏障和内存屏障
优化屏障 编译器编译源代码时,会将源代码进行优化,将源代码的指令进行重排序,以适合于CPU的并行执行。然而,内核同步必须避免指令重新排序,优化屏障(Optimization barrier)避免编译器的重排序优化操作,保证编译程序时在优化屏障之前的指令不会在优化屏障之后执行。 Linux用宏barrier实现优化屏障,gcc编译器的优化屏障宏定义列出如下
2015-03-05 17:35:09 690
转载 原子操作(1) - 用汇编实现原子操作
“最轻量级的锁”,通常也叫”原子操作”,之所以加引号是因为他们在汇编级别并不是原子操作,是用多条指令完成的,这些操作大多都是利用CPU支持的汇编指令.在某些构架过时的CPU体系结构上,它们应该是用比较重量级的线程内锁实现的吧(我的猜测).最常见的原子操作有Compare and Exchange,Self Increase/Decrease等等80486 CPU相关指令:LOCK:这是
2015-03-05 16:56:27 818
转载 C/C++ Volatile关键词深度剖析
Volatile,词典上的解释为:易失的;易变的;易挥发的。那么用这个关键词修饰的C/C++变量,应该也能够体现出”易变”的特征。大部分人认识Volatile,也是从这个特征出发,而这也是本文揭秘的C/C++ Volatile的第一个特征。 Volatile:易变的在介绍C/C++ Volatile关键词的”易变”性前,先让我们看看以下的两
2015-03-05 15:17:28 601
转载 MESI-CPU缓存一致性协议
MESI(Modified Exclusive Shared Or Invalid)(也称为伊利诺斯协议,是因为该协议由伊利诺斯州立大学提出)是一种广泛使用的支持写回策略的缓存一致性协议,该协议被应用在Intel奔腾系列的CPU中,详见“support the more efficient write-back cache in addition to the write-through ca
2015-03-05 14:24:35 607
转载 Android 应用程序管理机制
android应用程序管理主要由PackageManager这个类来管理,实现PackageManager这个抽象类的是ContextImpl.java。在ContextImpl.java中,有一个内部静态类叫ApplicationPackageManager,实现了所有PackageManager的接口。?12345
2015-03-04 20:16:21 941
转载 关于SIGBUS的总结
From: by scz , 2.0 理解SIGBUS与SIGSEGVQ: SIGSEGV我能理解,但有时碰上SIGBUS,这该如何理解。A: nkwht@SMTHnkwht用Google获取这样一些知识。有多种可能导致SIGBUS信号:1) 硬件故障,不用说,程序员最常碰上的肯定不是这种情形。2) Linux平台上执行mallo
2015-03-03 12:00:17 1258
基于ffmpeg的Android 2.2播放器开源代码
2012-07-24
Linux- 用C语言实现的简单Web服务器源代码
2011-08-31
Nokia论坛技术资料Symbian解决方案-中文版 CHM文档
2010-01-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人