happens-before是JMM最核心的概念,理解happens-before是理解JMM的关键。 一.JMM的设计 首先,让我们先分析一下JMM的设计意图。从JMM的设计者的角度,在设计JMM的时候要考虑一下两个关键因素: 1.程序员对内存模型的使用。程序员希望内存模型易于理解、易于编程。程序 ...
分类:
移动开发 时间:
2018-07-31 23:39:07
阅读次数:
203
volatile 影响编译器编译的结果,指出,volatile 变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++ 在产生release版可执行码时会进行编译优化,加volatile关键字的变量有关的运算,将不进行编译优化。)。 例如: volatil ...
分类:
其他好文 时间:
2018-07-31 17:13:12
阅读次数:
158
[TOC] 前言 在特定场景下,我们需要在全局使用某一个对象的同一个实例,我们就需要保证一个对象不能存在多个实例。单例模式是一种很常见的设计模式;比如Servlet在Tomcat中是单例的,Spring IOC容器管理的Bean默认是单例的;单例模式就是为了保证一个对象对外只提供一个实例;单例模式实 ...
分类:
其他好文 时间:
2018-07-31 00:32:34
阅读次数:
154
一、结论 双重校验锁的单例模式代码如下: public class Singleton { private static Singleton singleton; private Singleton() {} public static Singleton getSingleton() { if ( ...
分类:
编程语言 时间:
2018-07-10 22:40:05
阅读次数:
253
关键词:wfe、FIFO ticket-based、spin_lock/spin_trylock/spin_unlock、spin_lock_irq/spin_lock_bh/spin_lock_irqsave。 《Linux并发与同步专题 (1)原子操作和内存屏障》 《Linux并发与同步专题 ( ...
分类:
系统相关 时间:
2018-07-06 01:40:24
阅读次数:
280
1、实现线程的三种方式 (extends Thread , Implements runnable , implements Callable new FutureTask(Callable) new Thread(futuretask)) 2、线程让步yield(让线程由运行状态变为就绪状态,不会 ...
分类:
其他好文 时间:
2018-07-05 21:34:39
阅读次数:
145
驱动代码: 应用层代码: 插入模块: root@plnx_arm:/mnt# insmod mytest.ko ioremap called: phys 0x41200000 -> virt 0xf09f0000 测试设备号: 运行应用程序: ...
分类:
其他好文 时间:
2018-06-12 22:32:33
阅读次数:
349
编译原理-1-C语言的文法 c语言的文法产生式: programà external_declaration | program external_declaration external_declarationà function_definition | declaration function ...
分类:
编程语言 时间:
2018-06-03 14:26:44
阅读次数:
146
#redis.conf # Redis configuration file example. # ./redis-server /path/to/redis.conf ################################## INCLUDES #####################... ...
分类:
其他好文 时间:
2018-05-30 00:21:11
阅读次数:
167