最新文章列表

Java中的 Volatile 关键字

详细的内容可以查看原址:http://www.ibm.com/developerworks/cn/java/j-jtp06197.html   Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。     Java语言规范中指出:为 ...
chenqisdfx 评论(0) 有766人浏览 2013-09-23 22:06

<基础-2> 构建线程安全应用程序

上一篇主要介绍了程序,进程,线程的概念和区别,进程的组成。然后是线程的创建和基本控制。接着本篇就介绍下什么是线程安全,怎样去保证线程安全的基本方法。 二、 构建线程安全应用程序 2.1 什么是线程安全性 线程安全很难给出一个准确的定义。大都是从不同的方面进行一个描述。当对一个复杂对象进行某种操作时,从操作开始到操作结束,该对象中间肯定会经历若干个非法的中间状态。能保证多线程在使用该对象时,每个开始 ...
足至迹留 评论(0) 有1667人浏览 2013-09-13 22:58

java 中的volatile关键字

volatile 是java中用来解决多线程的共享访问问题的,不过它解决的是变量级别的。不同于syncronized解决的是方法和代码块级别的。 在java的多线程的内存模型中存在main memory和work memory。main memory是所有线程共享的,而work memory是指各个线程自己的。对于共享变量的访问,线程是先从main memory中copy一份到work memor ...
berdy 评论(1) 有1898人浏览 2013-08-27 15:57

Java多线程 - (二) 线程同步synchronized和volatile

一、可能带来死锁的Synchrionized   先用代码来展示下线程同步的问题: /** * */ package com.wsheng.thread.synchronize; /** * @author Wang Sheng(Josh) * */ public class ThreadSynchronized { public static ...
Josh_Persistence 评论(0) 有5459人浏览 2013-08-13 13:42

Java并发编程: Volatile不能保证数据同步

在本篇博文中,将给出一个实例去验证volatile修饰的变量并不能保证其数据同步. Java内存模型规定了所有变量都存储在主内存中,每条线程都有自己的工 ...
MouseLearnJava 评论(12) 有6021人浏览 2013-08-05 12:47

java并发之原子性

详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp17 1、原子性操作: 不能被线程调度机制中断的操作;--对原子性变量的赋值和返回操作通常都是原子性的 原子性可以用于除了long和double之外的所有基本类型上的简单操作(当做不可分的原子),但是JVM将64位的  (long 和double变量)读取和写入当成是两个分离 ...
grefr 评论(0) 有1216人浏览 2013-05-22 09:39

HotSpot JVM虚拟机:JAVA内存模型与volatile变量

       JAVA虚拟机规范中试图通过“JAVA内存模型”来屏蔽掉各种硬件和各种操作系统队内存访问的差异,让JAVA程序在各种系统平台下都能有一致的并 ...
flyingdutchman 评论(0) 有3083人浏览 2013-04-28 20:24

【转】Java 理论与实践: 正确使用 Volatile 变量

转载地址:http://www.ibm.com/developerworks/cn/java/j-jtp06197.html Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一部分。本文介绍 ...
zong.jianhui06 评论(0) 有749人浏览 2013-04-17 18:29

java中volatile关键字的含义

        在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。 Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制。   synchronized  同步块大家都比较熟悉,通过 synchronized 关键字来实现,所有加上sync ...
dreamkyh 评论(0) 有730人浏览 2013-03-27 15:29

Java并发编程(一)--volatile, CAS, Atomic变量

  JVM volatile语义: mark: (1)Java 内存模型不会对valatile指令的操作进行重排序:这个保证对volatile变量的操作时按照指令的出现顺序执行的。 (2)volati ...
luliangy 评论(0) 有2934人浏览 2013-03-23 19:28

java的volatile

我们知道,在Java中设置变量值的操作,除了long和double类型的变量外都是原子操作,也就是说,对于变量值的简单读写操作没有必要进行同步。 这在JVM 1. ...
2012到2014 评论(0) 有840人浏览 2013-03-18 17:53

Java中volatile实现线程间变量共享

volatile变量自身具有下列特性: 可见性。对一个volatile变量的读,总是能看到(任意线程)对这个volatile变量最后的写入。 原子性:对任意单个volatile变量的读/写具有原子性,但类似于volatile++这种复合操作不具有原子性。 volatile写-读建立的happens before关系 上面讲的是volatile变量自身的特性,对程序员来说,volatile对线程的内 ...
boonya 评论(0) 有2410人浏览 2013-02-27 23:03

延迟初始化实例域和静态域

1.如果出于性能的考虑而需要对实例域使用延迟初始化,就使用双重检查模式(double-check idiom)。这种模式避免了在域被初始化后访问这个域时的锁定开销。注意到实例域使用了volatile修饰符。 //Double-check idiom for lazy initialization of instance fields private volatile FieldType fi ...
zjuttsw 评论(2) 有459人浏览 2013-01-22 13:20

[并发译文]同步和Java内存模型

  原文:http://gee.cs.oswego.edu/dl/cpj/jmm.html   作者:Doug Lea 译者:程晓明,萧欢,杜建雄  校对:方腾飞,丁一,欧振聪     目录 引言 原子性 可见性
fantasy 评论(0) 有1443人浏览 2013-01-14 10:17

[并发译文]Java内存模型FAQ

原文:http://www.cs.umd.edu/~pugh/java/memoryModel/jsr-133-faq.html  译者:徐飞,方腾飞 目录 什么是内存模型? 其他语言,像c++,也有内存模型吗? JSR 133是什么?
fantasy 评论(0) 有1059人浏览 2013-01-06 22:56

java 内存模型与线程 正文

        在前传中讲述了jvm中内存的划分, 是从线程的维度, 而不是从堆 , 栈,方法区的角度.两者直接属于不同维度.前传中讲述了java内存的基本概念.这一章主要说一说内存间交互以及java中一些关键字, 一些规则的实现1.在内存间的交互操作 关于主内存与工作内存之间的具体的交互协议.有如下8中操作:[/size](1) lock: 作用与主内存的变量,一条线程独有.[/size](2) ...
sharp-fcc 评论(0) 有1010人浏览 2012-12-31 15:39

性能监控/优化系列——Java应用Profiling

 1. 常见的内存泄露有adding entries to a Java Collection and never removing them are a common source of memory leaks。 2. 对于IO应用的调优, 为了减低CPU utilization, 一个常用的方法是buffer 输入和输出数据,减少交互次数。 3. 任何一次网络IO的调用最终会导致一个O ...
chinese.darren 评论(0) 有1347人浏览 2012-12-23 14:54

transient,volatile和strictfp关键字(转)

Java中的transient,volatile和strictfp关键字      如果用transient声明一个实例变量,当对象存储时,它的值不需要维持。例如:   写道 class T { transient int a; //不需要维持 int b; //需要维持 }   这里,如果T类的一个对象写入一个持久的存储区域,a的内容不被保存,但b的将 ...
zcooke 评论(0) 有1077人浏览 2012-11-02 10:29

最近博客热门TAG

Java(141747) C(73651) C++(68608) SQL(64571) C#(59609) XML(59133) HTML(59043) JavaScript(54918) .net(54785) Web(54513) 工作(54116) Linux(50906) Oracle(49876) 应用服务器(43288) Spring(40812) 编程(39454) Windows(39381) JSP(37542) MySQL(37268) 数据结构(36423)

博客人气排行榜

    博客电子书下载排行

      >>浏览更多下载

      相关资讯

      相关讨论

      Global site tag (gtag.js) - Google Analytics