<?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>-Flyぁ梦- &#187; 同步</title>
	<atom:link href="http://blog.11034.org/tag/%e5%90%8c%e6%ad%a5/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.11034.org</link>
	<description></description>
	<lastBuildDate>Sun, 22 Jun 2025 08:59:05 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.2.38</generator>
	<item>
		<title>读java concurrency in practice</title>
		<link>http://blog.11034.org/2016-08/java_concurrency_in_practice.html</link>
		<comments>http://blog.11034.org/2016-08/java_concurrency_in_practice.html#comments</comments>
		<pubDate>Thu, 18 Aug 2016 07:15:05 +0000</pubDate>
		<dc:creator><![CDATA[-Flyぁ梦-]]></dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Life in reading]]></category>
		<category><![CDATA[同步]]></category>
		<category><![CDATA[并发]]></category>
		<category><![CDATA[锁]]></category>

		<guid isPermaLink="false">http://blog.11034.org/?p=2875</guid>
		<description><![CDATA[这是一本好书（Java源码作者Doug Lea是作者之一），关于Java并发的各个方面，介绍的很深入，应该算是 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>这是一本好书（Java源码作者Doug Lea是作者之一），关于Java并发的各个方面，介绍的很深入，应该算是进阶一类，很多地方不好理解。一开始打算阅读英文版，倒不是英文看不懂，不过还是有很多内容的确理解起来很费劲，尤其是老外写书的风格（废话特别多 = = 一页密密麻麻的英文，让人找不到关键点在哪儿），看几页就没兴趣再看下去哎&#8230;后有幸找到了中文翻译版，而且翻译的很有水准，拜谢翻译工作者韩锴和方妙。</p>
<p>找不到翻译版的同学，可以私信我提供。</p>
<p><span id="more-2875"></span></p>
<p>可以说，自己对Java真正的并发同步的理解还处于入门阶段，看了一遍书很多地方估计还是没有get到的，不过已经学到不少了。这本书值得以后再细细研读。</p>
<ul>
<li>可重入的概念、可重入锁和java.util.concurrent.locks.ReentrantLock。</li>
</ul>
<p>详见：<strong><a class="row-title" title="编辑“可重入锁、ReentrantLock、AQS、Condition”" href="http://blog.11034.org/wp-admin/post.php?post=2833&amp;action=edit" target="_blank">可重入锁、ReentrantLock、AQS、Condition</a></strong></p>
<ul>
<li>基于AQS的各种同步工具类</li>
</ul>
<p>有ReentrantLock、ReentrantReadWriteLock、CountDownLatch、Semaphore、FutureTask、CyclicBarrier等</p>
<p>详见：<strong><a class="row-title" title="编辑“ReentrantReadWriteLock简单分析”" href="http://blog.11034.org/wp-admin/post.php?post=2838&amp;action=edit">ReentrantReadWriteLock简单分析</a>  <a class="row-title" title="编辑“CountDownLatch简单分析”" href="http://blog.11034.org/wp-admin/post.php?post=2845&amp;action=edit">CountDownLatch简单分析</a> <a class="row-title" title="编辑“Semaphore简单分析”" href="http://blog.11034.org/wp-admin/post.php?post=2850&amp;action=edit">Semaphore简单分析</a> <a class="row-title" title="编辑“FutureTask简单分析和用法”" href="http://blog.11034.org/wp-admin/post.php?post=2853&amp;action=edit">FutureTask简单分析和用法</a></strong></p>
<ul>
<li>reordering重排序、happened-before关系、volatile真正语义</li>
<li>基于硬件的原子CAS算法</li>
<li>内置synchronized锁、基于CAS算法的锁、CAS原子类、volatile修饰的性能相关</li>
<li>org.apache.http.annotation包下有一些有用的Annotation，比如ThreadSafe、NotThreadSafe等</li>
</ul>
<h4  class="related_post_title">看看 同步 , 并发 , 锁</h4><ul class="related_post"><li>2016-06-16 -- <a target="_blank" href="http://blog.11034.org/2016-06/reentrantreadwritelock.html" title="ReentrantReadWriteLock简单分析">ReentrantReadWriteLock简单分析</a></li><li>2016-06-13 -- <a target="_blank" href="http://blog.11034.org/2016-06/reentrantlock.html" title="可重入锁、ReentrantLock、AQS、Condition">可重入锁、ReentrantLock、AQS、Condition</a></li><li>2015-01-07 -- <a target="_blank" href="http://blog.11034.org/2015-01/prevent_db_duplicate.html" title="防止数据库数据重复的几种方法">防止数据库数据重复的几种方法</a></li><li>2016-06-21 -- <a target="_blank" href="http://blog.11034.org/2016-06/semaphore.html" title="Semaphore简单分析">Semaphore简单分析</a></li><li>2016-06-17 -- <a target="_blank" href="http://blog.11034.org/2016-06/countdownlatch.html" title="CountDownLatch简单分析">CountDownLatch简单分析</a></li></ul><h4 class="related_post_title">看看 Java , Life in reading </h4><ul class="related_post"><li>2016-09-09 -- <a target="_blank" href="http://blog.11034.org/2016-09/64bits_linux_arena_memory.html" title="64位Linux下Java进程堆外内存迷之64M问题">64位Linux下Java进程堆外内存迷之64M问题</a></li><li>2016-08-05 -- <a target="_blank" href="http://blog.11034.org/2016-08/thread_stop.html" title="线程清理">线程清理</a></li><li>2016-06-21 -- <a target="_blank" href="http://blog.11034.org/2016-06/futuretask.html" title="FutureTask简单分析和用法">FutureTask简单分析和用法</a></li><li>2016-06-21 -- <a target="_blank" href="http://blog.11034.org/2016-06/semaphore.html" title="Semaphore简单分析">Semaphore简单分析</a></li><li>2016-06-17 -- <a target="_blank" href="http://blog.11034.org/2016-06/countdownlatch.html" title="CountDownLatch简单分析">CountDownLatch简单分析</a></li>]]></content:encoded>
			<wfw:commentRss>http://blog.11034.org/2016-08/java_concurrency_in_practice.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>防止数据库数据重复的几种方法</title>
		<link>http://blog.11034.org/2015-01/prevent_db_duplicate.html</link>
		<comments>http://blog.11034.org/2015-01/prevent_db_duplicate.html#comments</comments>
		<pubDate>Wed, 07 Jan 2015 09:22:49 +0000</pubDate>
		<dc:creator><![CDATA[-Flyぁ梦-]]></dc:creator>
				<category><![CDATA[Life in Coding]]></category>
		<category><![CDATA[同步]]></category>
		<category><![CDATA[并发]]></category>
		<category><![CDATA[数据库]]></category>

		<guid isPermaLink="false">http://blog.11034.org/?p=2374</guid>
		<description><![CDATA[在某些数据库表中，比如记录的是一些关联关系，比如某个人关注了另外一个人，person_id和target_id [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>在某些数据库表中，比如记录的是一些关联关系，比如某个人关注了另外一个人，person_id和target_id，这种数据表的数据如果出现了重复，可能会引起程序上其他地方的诡异bug，要尽量保持数据的唯一性。这种数据重复，要不就是插入数据时根本没有做存在检查，或者是可能由二次提交产生的比较麻烦的并发情况。</p>
<pre class="markdown_pre"><code>1. 代码层做同步控制，利用锁机制
2. 在数据查重时利用数据库事务 + SQL层加入排他锁，select * from xx where ... lock for update
3. 数据库层Unique检查，建表时加入unique的索引</code></pre>
<p>前两个方法在代码层面，比较容易控制，第三种方法最彻底但是出现冲突时候会报异常。</p>
<p>不过如果在高并发的情况下，使用第三种方式然后主动捕获异常，也是很不错的甚至是最好的。</p>
<h4  class="related_post_title">看看 同步 , 并发 , 数据库</h4><ul class="related_post"><li>2016-08-18 -- <a target="_blank" href="http://blog.11034.org/2016-08/java_concurrency_in_practice.html" title="读java concurrency in practice">读java concurrency in practice</a></li><li>2016-06-16 -- <a target="_blank" href="http://blog.11034.org/2016-06/reentrantreadwritelock.html" title="ReentrantReadWriteLock简单分析">ReentrantReadWriteLock简单分析</a></li><li>2016-06-13 -- <a target="_blank" href="http://blog.11034.org/2016-06/reentrantlock.html" title="可重入锁、ReentrantLock、AQS、Condition">可重入锁、ReentrantLock、AQS、Condition</a></li><li>2016-06-08 -- <a target="_blank" href="http://blog.11034.org/2016-06/tomcat_shutdown.html" title="Tomcat监听shutdown释放数据库连接池">Tomcat监听shutdown释放数据库连接池</a></li></ul><h4 class="related_post_title">看看 Life in Coding </h4><ul class="related_post"><li>2016-09-09 -- <a target="_blank" href="http://blog.11034.org/2016-09/jabber_and_xmpp.html" title="jabber和XMPP简述原理">jabber和XMPP简述原理</a></li><li>2014-10-25 -- <a target="_blank" href="http://blog.11034.org/2014-10/linux_timeout.html" title="linux的timeout处理wkhtmltopdf进程超时">linux的timeout处理wkhtmltopdf进程超时</a></li><li>2014-09-10 -- <a target="_blank" href="http://blog.11034.org/2014-09/dotnet_csharp_excel.html" title="记C#和Excel开发">记C#和Excel开发</a></li><li>2011-06-11 -- <a target="_blank" href="http://blog.11034.org/2011-06/google_doodle_guitar.html" title="2011-6-9 Google Doodle之电子琴">2011-6-9 Google Doodle之电子琴</a></li><li>2011-03-10 -- <a target="_blank" href="http://blog.11034.org/2011-03/learning_cs.html" title="学计算机的尼玛伤不起啊！！！！！！">学计算机的尼玛伤不起啊！！！！！！</a></li>]]></content:encoded>
			<wfw:commentRss>http://blog.11034.org/2015-01/prevent_db_duplicate.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
