单例模式的目的是:让类只创建一个实例对象。 单例模式不能保证线程安全。 以下三个方法来优化: 1. 同步(synchronized)返回实例的方法,适合调用实例比较少的 2. “急切”创建实例,即在初始化唯一实例的时候直接创建实例,适合频繁调用实例 3.双重检查锁,即在定义唯一实例时加volatil ...
分类:
其他好文 时间:
2016-07-14 21:21:45
阅读次数:
108
Java多线程基础@(博客文章)[java]Java多线程基础
一概述
一基础内容
1线程的基本概念
2JAVA线程基础
3创建新线程的2种方法
二线程状态及其变迁
1Java线程的六种状态
2线程状态的变迁
三常用API
一1创建启动线程
二终止线程的方法
三线程优先级
四waitnofitynotifyAll
五一些deprecated的API
六Daemon线程
七sleep
八volatil...
分类:
编程语言 时间:
2016-05-13 14:47:37
阅读次数:
271
1. 为什么用volatile? C/C++ 中的 volatile 关键字和 const 对应,用来修饰变量,通常用于建立语言级别的 memory barrier。这是 BS 在 "The C++ Programming Language" 对 volatile 修饰词的说明: A volatil
分类:
编程语言 时间:
2016-03-07 12:08:05
阅读次数:
326
redis 官方提供的 confhttps://raw.github.com/antirez/redis/2.2/redis.conf中6中过期策略的具体方式。redis 中的默认的过期策略是volatile-lru 。设置方式 config set maxmemory-policy volatil...
分类:
其他好文 时间:
2016-01-20 17:24:50
阅读次数:
126
volatile的特性当我们声明共享变量为volatile后,对这个变量的读/写将会很特别。理解volatile特性的一个好方法是:把对volatile变量的单个读/写,看成是使用同一个监视器锁对这些单个读/写操作做了同步。下面我们通过具体的示例来说明,请看下面的示例代码:class Volatil...
分类:
编程语言 时间:
2016-01-19 23:30:28
阅读次数:
252
volatile的特性当我们声明共享变量为volatile后,对这个变量的读/写将会很特别。理解volatile特性的一个好方法是:把对volatile变量的单个读/写,看成是使用同一个监视器锁对这些单个读/写操作做了同步。下面我们通过具体的示例来说明,请看下面的示例代码:class Volatil...
分类:
编程语言 时间:
2015-08-02 13:11:52
阅读次数:
132
C/C++中volatile关键字详解1. 为什么用volatile? C/C++ 中的 volatile 关键字和 const 对应,用来修饰变量,通常用于建立语言级别的 memory barrier。这是 BS 在 "The C++ Programming Language" 对 volatil...
分类:
其他好文 时间:
2015-07-22 12:33:18
阅读次数:
81
多线程和并发性并不是什么新内容,但是 Java 语言设计中的创新之一就是,它是第一个直接把跨平台线程模型和正规的内存模型集成到语言中的主流语言。核心类库包含一个Thread类,可以用它来构建、启动和操纵线程,Java 语言包括了跨线程传达并发性约束的构造 ——synchronized和volatil...
分类:
编程语言 时间:
2015-05-06 10:48:02
阅读次数:
254
volatile 影响编译器编译的结果,指出,volatile 变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++ 在产生release版可执行码时会进行编译优化,加volatile关键字的变量有关的运算,将不进行编译优化。)。 例如: volatil...
分类:
其他好文 时间:
2014-11-13 22:29:12
阅读次数:
176
volatile int i=10; int j = i; ... int k = i; volatile 告诉编译器i是随时可能发生变化的,每次使用它的时候必须从i的地址中读取,因而编译器生成的可执行码会重新从i的地址读取数据放在k中。 volatile 影响编译器编译的结果,指出,volatil...
分类:
其他好文 时间:
2014-10-21 17:19:33
阅读次数:
171