
Java
dadarain
这个作者很懒,什么都没留下…
展开
-
Java Volalile
该关键字的主要作用是保证可见性,主要做法是禁用编译器优化,不会从寄存器和Cache获得值,只会从Memory获得值。避免多核的情况下,由于每个CPU核都有自己独立的寄存器和Cache,因此对于寄存器而言,不会同步,对于L1,L2而言,具有同步时差。会造其他CPU中跑得线程看不到结果。CPU有类似MTTR的机制,可以控制是否缓存,另外OS可以通过控制Page Cache来控制硬件Cache是否缓存...2012-04-26 13:29:57 · 143 阅读 · 0 评论 -
DirectByteBuffer
如果想使用堆外内存,那么可以使用DirectByteBuffer。 主要用途:像Terracotta的BigMemory,既想要跟JVM相同进程内的存取,又希望不占用堆内存(因为对于需要长久保持的大数据占用过多的Heap会造成很多无用的Full GC,影响性能),那么就可以利用DirectByteBuffer。 实现原理,归根结底就是JNI。 上源...原创 2012-04-10 12:33:34 · 191 阅读 · 0 评论