<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>解惑 &#187; volatile</title>
	<atom:link href="http://www.jiehoo.me/tag/volatile/feed" rel="self" type="application/rss+xml" />
	<link>http://www.jiehoo.me</link>
	<description>解己之惑，解人之惑</description>
	<lastBuildDate>Mon, 19 Jul 2010 10:01:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>看的东西太多也容易忘啊</title>
		<link>http://www.jiehoo.me/%e7%9c%8b%e7%9a%84%e4%b8%9c%e8%a5%bf%e5%a4%aa%e5%a4%9a%e4%b9%9f%e5%ae%b9%e6%98%93%e5%bf%98%e5%95%8a.htm</link>
		<comments>http://www.jiehoo.me/%e7%9c%8b%e7%9a%84%e4%b8%9c%e8%a5%bf%e5%a4%aa%e5%a4%9a%e4%b9%9f%e5%ae%b9%e6%98%93%e5%bf%98%e5%95%8a.htm#comments</comments>
		<pubDate>Wed, 29 Oct 2008 09:07:29 +0000</pubDate>
		<dc:creator>Cherami</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[volatile]]></category>

		<guid isPermaLink="false">http://www.jiehoo.com/%e7%9c%8b%e7%9a%84%e4%b8%9c%e8%a5%bf%e5%a4%aa%e5%a4%9a%e4%b9%9f%e5%ae%b9%e6%98%93%e5%bf%98%e5%95%8a.htm</guid>
		<description><![CDATA[前段时间面试的时候问到的一个问题，实现一个线程安全的计数器，我已经让类变成Singleton了，set方法也变成同步的了，这个时候面试的人问，如果这个程序是工作在多CPU的机器上，发现这个计数器仍然存在计数不准确的情况会是因为什么？我的回答是：JDK的bug，呵呵，面试的人说不是，JDK提供了修正的机制，就是把计数的那个变量标记为volatile，这样就可以防止，今天有空搜索了下这个关键字，发现我以前翻译的一个文章《破除java神话之三：原子操作都是线程安全的》说的就是这个问题，虽然不是完全匹配，但是机制就是这样的，多处理器有各自的寄存器，所以可能有问题，使用volatile关键字就可以让JVM在读写那个变量的时候都从主存读写，而不在本地保存副本。]]></description>
			<content:encoded><![CDATA[<p class='fp'>前段时间面试的时候问到的一个问题，实现一个线程安全的计数器，我已经让类变成Singleton了，set方法也变成同步的了，这个时候面试的人问，如果这个程序是工作在多CPU的机器上，发现这个计数器仍然存在计数不准确的情况会是因为什么？我的回答是：JDK的bug，呵呵，面试的人说不是，JDK提供了修正的机制，就是把计数的那个变量标记为volatile，这样就可以防止，今天有空搜索了下这个关键字，发现我以前翻译的一个文章《破除java神话之三：原子操作都是线程安全的》说的就是这个问题，虽然不是完全匹配，但是机制就是这样的，多处理器有各自的寄存器，所以可能有问题，使用volatile关键字就可以让JVM在读写那个变量的时候都从主存读写，而不在本地保存副本。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jiehoo.me/%e7%9c%8b%e7%9a%84%e4%b8%9c%e8%a5%bf%e5%a4%aa%e5%a4%9a%e4%b9%9f%e5%ae%b9%e6%98%93%e5%bf%98%e5%95%8a.htm/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
