volatile 影响编译器编译的结果,指出,volatile 变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++ 在产生release版可执行码时会进行编译优化,加volatile关键字的变量有关的运算,将不进行编译优化。)。例如:volatile ...
分类:
其他好文 时间:
2015-04-09 17:20:20
阅读次数:
103
java中volatile关键字的含义在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制。sync...
分类:
编程语言 时间:
2015-04-05 11:44:50
阅读次数:
135
本文简单介绍volatile关键字的使用,进而引出编译期间内存乱序的问题,并介绍了有效防止编译器内存乱序所带来的问题的解决方法,文中简单提了下CPU指令乱序的现象,但并没有深入讨论。 以下是我搭建的博客地址: http://itblogs.ga/blog/20150329150706/欢迎到这里阅读...
分类:
其他好文 时间:
2015-03-29 18:02:03
阅读次数:
153
1、介绍Java中的atomic2、介绍volatile关键字3、数据库四范式4、数据库连接池5、Java中的concurrent包,了解吗?6、除了Scala语言适合高并发,还有哪些语言或者工具适合高并发?(因为个人懂点Scala,才问的,正常不会问)7、int和long分别应用在什么情况下?8、TCP和UDP的主要区别9、介绍Spring的IOC10、介绍Hibernate中的Session11...
分类:
编程语言 时间:
2015-03-21 17:09:46
阅读次数:
989
在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制。synchronized同步块大家都比较熟悉,...
分类:
编程语言 时间:
2015-03-19 14:31:28
阅读次数:
240
1. 概述 本章包括同步资源以及取消长时间任务相关的内容。2. 主要内容 2.1 同步资源 ① lock关键字实现。会阻塞程序,有可能会导致死锁。 ② volatile关键字可以禁用编译优化,用于避免优化代码时对多线程的影响。private static volatile int _...
分类:
编程语言 时间:
2015-03-18 17:20:57
阅读次数:
185
java中volatile关键字的使用涉及到java的内存模型,JMM。简单来说,每个线程都有一个本地内存(虚拟的),线程共享的变量存储在主内存中,主内存在堆中。内存访问方式如下图所示。volatile的作用总结如下:(1)可见性:对一个volatile变量的读取,总是能够看到(任意线程)对这个变量...
分类:
编程语言 时间:
2015-03-14 18:28:47
阅读次数:
311
锁提供了两种主要特性:互斥(mutual exclusion) 和可见性(visibility)。互斥即一次只允许一个线程持有某个特定的锁,因此可使用该特性实现对共享数据的协调访问协议,这样,一次就只有一个线程能够使用该共享...
分类:
编程语言 时间:
2015-03-14 06:23:06
阅读次数:
138
并发本身有两个概念:1.互斥性;2.可见性; 先来说一下可见性,就是让共享的变量在进程间可以及时获得最新版本的数据;这里比较简单的方式是为可能被并发修改的全局变量添加上volatile关键字;volatile关键作用根据我查找的用途,有两方面: 在c++中,它的寓意是通知编译器对于该字段处理取消优化...
分类:
编程语言 时间:
2015-03-09 00:23:12
阅读次数:
194
volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。使用该关键字的例子如下:int volatile nVint;当要求使...
分类:
其他好文 时间:
2015-03-04 09:41:44
阅读次数:
121