大家都知道,在多线程或多进程的环境中,对统一资源的访问需要特别小心,特别是在写资源时,如果不加锁,将会导致很多严重的后果,Lucene的索引也是如此,lucene对索引的读写分为IndexReader和IndexWriter,顾名思义,一个读,一个写,lucene可以对同一个索引文件建立多个Inde...
分类:
Web程序 时间:
2015-09-17 11:42:12
阅读次数:
279
前面的两篇随笔,都是只是个铺垫,真正实现增强四项基本功能的重头戏,在本篇随笔中,本文将通过AOP实现如下的四个基本功能:/// 1、自动管理数据库连接[可选]/// 2、自动管理数据库事务,当接收到异常后(无论什么异常)事务将自动回滚[可选]/// 3、服务级加锁[必选]/// 4、以统一方式处理 ...
分类:
其他好文 时间:
2015-09-15 20:00:21
阅读次数:
168
ConcurrentHashMap的关键实现:分段锁,简单来讲就是将hash表分成一段段子表,分别加锁。本质上ConcurrentHashMap和hashMap没什么区别,元素都是Entry,一个节点加链表。发生冲突的时候采用链表法存储元素,所以源码里会有大量的通过key的hash值找到槽后进行遍历...
分类:
其他好文 时间:
2015-09-15 14:45:11
阅读次数:
198
一、概述 mysql的锁分为表锁和行锁两种,其中myisam引擎用的是表锁, innoDB默认的使用是行锁, 其他情况是表锁。 两种锁的优缺点: ?表级锁:加锁速度快,开销小。不会出现死锁的情况,粒度大,发生锁冲突的概率...
分类:
数据库 时间:
2015-09-13 21:47:59
阅读次数:
233
在多节点的项目中,经常要涉及到某些方法加锁的控制。而这个时候,简单易用的synchronized已经不能满足多节点的部署结构。之前在项目中,用的比较多的是数据库的更新锁:for udpate。但是这个有个缺点,就是对于本来就容易出现瓶颈的数据库,造成了更大的压力。同时,如果是锁表的语句,同时表数据量...
分类:
数据库 时间:
2015-09-12 17:39:47
阅读次数:
176
@property与@synthesize是成对出现的,可以自动生成某个类成员变量的存取方法。在Xcode4.5以及以后的版本,@synthesize可以省略。1.atomic与nonatomicatomic:默认是有该属性的,这个属性是为了保证程序在多线程情况,编译器会自动生成一些互斥加锁代码,避...
分类:
移动开发 时间:
2015-09-11 22:11:17
阅读次数:
353
并发控制 共享锁 排他锁 表级 行级锁 InnoDB Falcon事务: Start Transaction 。。。。。CommitACID:原子性、一致性、隔离性、持久性死锁是指两个或多个事务在统一资源上互相占用,并请求加锁时,导致的恶性循环现象。当多个事务以不同顺序驶入加锁同一资源时,就会产生....
分类:
数据库 时间:
2015-09-11 20:51:08
阅读次数:
244
链接:http://redis.io/topics/distlock 原理很简单,一段时间内轮询加锁的key 重点,不同语言的开源实现 Before describing the algorithm, here are a few links to implementations already available that ca...
分类:
其他好文 时间:
2015-09-11 16:13:28
阅读次数:
319
(1)当访问共同的代码的时候:可以使用同一个Runnable对象,这个Runnable对象中有这个共享数据,比如卖票系统就可以这么做。或者这个共享数据封装在一个对象当中,然后对这个对象加锁,也可以实现数据安全访问。publicclassInterfacaesharethread{
publicstaticvoidmain(Strin..
分类:
编程语言 时间:
2015-09-10 17:34:59
阅读次数:
229
共享的资源是票,tickitsNum记录票的销售情况对售票的过程进行加锁synchronized(this){},
分类:
其他好文 时间:
2015-09-09 11:15:56
阅读次数:
132