<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://blog.guwendaquan.com/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://blog.guwendaquan.com/feed.php">
        <title>大可记事本 notes:tech_log:java:knowledge:base_concurrent</title>
        <description></description>
        <link>https://blog.guwendaquan.com/</link>
        <image rdf:resource="https://blog.guwendaquan.com/ttps://blog.guwendaquan.com/lib/tpl/twentyfifteen/images/favicon.ico" />
       <dc:date>2026-04-30T18:49:16+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://blog.guwendaquan.com/notes/tech_log/java/knowledge/base_concurrent/singleton_dcl?rev=1663082191&amp;do=diff"/>
                <rdf:li rdf:resource="https://blog.guwendaquan.com/notes/tech_log/java/knowledge/base_concurrent/synchronized?rev=1663082219&amp;do=diff"/>
                <rdf:li rdf:resource="https://blog.guwendaquan.com/notes/tech_log/java/knowledge/base_concurrent/volatile?rev=1663082252&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://blog.guwendaquan.com/ttps://blog.guwendaquan.com/lib/tpl/twentyfifteen/images/favicon.ico">
        <title>大可记事本</title>
        <link>https://blog.guwendaquan.com/</link>
        <url>https://blog.guwendaquan.com/ttps://blog.guwendaquan.com/lib/tpl/twentyfifteen/images/favicon.ico</url>
    </image>
    <item rdf:about="https://blog.guwendaquan.com/notes/tech_log/java/knowledge/base_concurrent/singleton_dcl?rev=1663082191&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-13T23:16:31+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>单例模式和双重检查模式(DCL)</title>
        <link>https://blog.guwendaquan.com/notes/tech_log/java/knowledge/base_concurrent/singleton_dcl?rev=1663082191&amp;do=diff</link>
        <description>单例模式和双重检查模式(DCL)

双重检查模式实现单例模式，使用volatile，代码如下：


public class Singleton {
	private static volatile Singleton instance;
 
	private Singleton() {
	}
 
	public static Singleton getInstance() {
		if (instance == null) {
			synchronized (Singleton.class) {
				if (instance == null) {
					instance = new Singleton();
				}
			}
		}
		return instance;
	}
}</description>
    </item>
    <item rdf:about="https://blog.guwendaquan.com/notes/tech_log/java/knowledge/base_concurrent/synchronized?rev=1663082219&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-13T23:16:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Java锁Synchronized对象锁和类锁区别</title>
        <link>https://blog.guwendaquan.com/notes/tech_log/java/knowledge/base_concurrent/synchronized?rev=1663082219&amp;do=diff</link>
        <description>Java锁Synchronized对象锁和类锁区别

java的内置锁

每个java对象都可以用做一个实现同步的锁，这些锁成为内置锁。线程进入同步代码块或方法的时候会自动获得该锁，在退出同步代码块或方法时会释放该锁。获得内置锁的唯一途径就是进入这个锁的保护的同步代码块或方法。</description>
    </item>
    <item rdf:about="https://blog.guwendaquan.com/notes/tech_log/java/knowledge/base_concurrent/volatile?rev=1663082252&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-13T23:17:32+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>深入分析volatile的实现原理</title>
        <link>https://blog.guwendaquan.com/notes/tech_log/java/knowledge/base_concurrent/volatile?rev=1663082252&amp;do=diff</link>
        <description>深入分析volatile的实现原理

通过前面一章我们了解了synchronized是一个重量级的锁，虽然JVM对它做了很多优化，而下面介绍的volatile则是轻量级的synchronized。如果一个变量使用volatile，则它比使用synchronized的成本更加低，因为它不会引起线程上下文的切换和调度。Java语言规范对volatile的定义如下：</description>
    </item>
</rdf:RDF>
