1. 为什么用volatile? C/C++ 中的 volatile 关键字和 const 对应,用来修饰变量,通常用于建立语言级别的 memory barrier。这是 BS 在 "The C++ Programming Language" 对 volatile 修饰词的说明: A volatil ...
分类:
其他好文 时间:
2017-06-15 14:15:05
阅读次数:
258
新东方新GRE佛脚词汇表-wordlist4 下载地址:http://gre.xdf.cn/201606/10517553.html Tantamount 相当的,无异于 来自短语 tant amount, 等同,一致,来自拉丁语 tantus, 一样的,一致,来自 tam, 因此,所以, 词源同 ...
分类:
其他好文 时间:
2017-06-15 11:29:52
阅读次数:
1076
volatile是变量修饰符,而synchronized则是作用于代码,方法和变量。 int i1;int geti1() {return i1;} volatile int i2;int geti2() {return i2;} int i3;synchronized int geti3() {r ...
分类:
其他好文 时间:
2017-06-14 14:32:16
阅读次数:
136
第一种…… public class Singleton { private static Singleton _instance = null; private Singleton(){} public static Singleton CreateInstance() { if(_instanc ...
volatile是变量修饰符,而synchronized则是作用于一段代码或方法;如下三句get代码: geti1() 得到存储在当前线程中i1的数值。多个线程有多个i1变量拷贝,而且这些i1之间可以相互不同。换句话说,另一个线程可能已经改变了它线程内的i1值,而这个值可以和当前线程中的i1值不相同 ...
分类:
编程语言 时间:
2017-06-13 14:39:49
阅读次数:
174
一、JMM(java memory model)内存模型 从网上淘来二张图: 上面这张图说的是,在多核CPU的系统中,每个核CPU自带高速缓存,然后计算机主板上也有一块内存-称为主内(即:内存条)。工作时,CPU的高速缓存中的数据通过一系列手段来保证与主内的数据一致(CacheCoherence), ...
分类:
编程语言 时间:
2017-06-12 23:54:50
阅读次数:
329
单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。 多线程下的单例模式: public class Singleton{ private volatile static Singleton _instance = null; private static readonly object ...
分类:
其他好文 时间:
2017-06-10 23:32:33
阅读次数:
222
定义:确保一个类只有一个实例,并提供一个全局访问点。 一、线程不安全的 1、饱汉式,只有在被第一次调用的时候才创建实例。 package com.singleton; public class Singleton { // 利用静态变量创建唯一实例 private static Singleton ...
分类:
其他好文 时间:
2017-06-10 13:48:34
阅读次数:
201
extern extern的两个作用: 修饰变量或函数,提示编译器此变量或函数是在其它文件中定义的,但要在此处引用; 进行链接指定,如: extern "C" void fun(int a, int b); 告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名而不是C++的,; stat ...
分类:
其他好文 时间:
2017-06-09 20:29:33
阅读次数:
181
volatile是java虚拟机提供最轻量级的同步机制。 volatile两个特性:1,保证同步的变量对所有线程是可见的。虽然对所有线程是即时可见的,但是却不保证原子性,也就是不保证线程安全,比如对于创建20个线程,每个线程都执行i++操作,执行100次,但是i输出的结果小于2000。因为一条i++ ...
分类:
编程语言 时间:
2017-06-09 12:39:29
阅读次数:
142