Archive

Posts Tagged ‘同步’

读java concurrency in practice

8月 18th, 2016 3 comments

这是一本好书(Java源码作者Doug Lea是作者之一),关于Java并发的各个方面,介绍的很深入,应该算是进阶一类,很多地方不好理解。一开始打算阅读英文版,倒不是英文看不懂,不过还是有很多内容的确理解起来很费劲,尤其是老外写书的风格(废话特别多 = = 一页密密麻麻的英文,让人找不到关键点在哪儿),看几页就没兴趣再看下去哎…后有幸找到了中文翻译版,而且翻译的很有水准,拜谢翻译工作者韩锴和方妙。

找不到翻译版的同学,可以私信我提供。

阅读更多…

防止数据库数据重复的几种方法

1月 7th, 2015 1 comment

在某些数据库表中,比如记录的是一些关联关系,比如某个人关注了另外一个人,person_id和target_id,这种数据表的数据如果出现了重复,可能会引起程序上其他地方的诡异bug,要尽量保持数据的唯一性。这种数据重复,要不就是插入数据时根本没有做存在检查,或者是可能由二次提交产生的比较麻烦的并发情况。

1. 代码层做同步控制,利用锁机制
2. 在数据查重时利用数据库事务 + SQL层加入排他锁,select * from xx where ... lock for update
3. 数据库层Unique检查,建表时加入unique的索引

前两个方法在代码层面,比较容易控制,第三种方法最彻底但是出现冲突时候会报异常。

不过如果在高并发的情况下,使用第三种方式然后主动捕获异常,也是很不错的甚至是最好的。