共享锁shared lock(也叫读锁read lock)又称读锁,若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。共享锁不阻塞共享锁,阻塞排它锁 排他锁e ...
分类:
数据库 时间:
2016-10-19 07:37:53
阅读次数:
360
Select … for update语句是我们经常使用手工加锁语句。通常情况下,select语句是不会对数据加锁,妨碍影响其他的DML和DDL操作。同时,在多版本一致读机制的支持下,select语句也不会被其他类型语句所阻碍。 借助for update子句,我们可以在应用程序的层面手工实现数据加锁 ...
分类:
其他好文 时间:
2016-10-14 17:54:09
阅读次数:
122
回顾: 线程:资源的集合;内存共享,两个或多个线程同时修改一份数据时,造成结果可能不正确,必须加锁 进程:运行的最小单元 守护进程:在start之前设置setDemo() 队列queue:作用解耦,使程序之间是实现松耦合,提高处理效率 FIFO:先进先出 LIFO:后进先出 队列中的数据使用完就没了 ...
分类:
编程语言 时间:
2016-10-14 11:44:21
阅读次数:
186
1.锁定这个问题,是mysql自动产生的,不用程序猿自己加锁 答:默认情况下,档执行insert/update操作时,mysql会自动进行表锁定。从而此时读取操作只能等待。 2.mysql, 需要添加一列的时候,mysql会锁表,期间所有的读写操作只能等待。所以进行分表操作,将大表分成很多小表 3. ...
分类:
数据库 时间:
2016-10-13 16:52:22
阅读次数:
229
Android的UI访问是没有加锁的,这样在多个线程访问UI是不安全的。所以Android中规定只能在UI线程中访问UI。但是有没有极端的情况?使得我们在子线程中访问UI也可以使程序跑起来呢?
分类:
移动开发 时间:
2016-10-11 19:12:10
阅读次数:
251
在之前解决线程安全的过程中,虽然我们可以理解同步代码块和同步方法的锁对象问题, 但是我们并没有直接看到在哪里加上了锁,在哪里释放了锁, 为了更清晰的表达如何加锁和释放锁,JDK5以后提供了一个新的锁对象Lock。 注意:Lock是个接口。 2个常用方法: void lock(): 获取锁。 void ...
分类:
编程语言 时间:
2016-10-10 20:12:31
阅读次数:
145
方法一:使用memcache的add方法,memcache_add(‘lock’,1); 如果返回false,说明遇到锁,本进程等待或者返回错误, 如果返回true,说明加锁成功,可以对临界资源进行操作 参考链接:https://my.oschina.net/liuke1556/blog/52813 ...
分类:
Web程序 时间:
2016-10-09 17:16:27
阅读次数:
189
虽然锁机制是InnoDB引擎中为了保证事务性而自然存在的,在索引、表结构、配置参数一定的前提下,InnoDB引擎加锁过程是一样的,所以理论上来说也就**不存在“锁机制能够提升性能”这样的说法**。但理...
分类:
数据库 时间:
2016-10-07 23:41:02
阅读次数:
403
MYSQLINNODB存储引擎的锁的类型:INNODB实现了以下两种标准的行级锁:共享锁(slock),允许事务读一行数据。排他锁(XLOCK),允许事务删除或更新一行数据。此外INNODB引擎支持多粒度锁定,这种锁定允许事务在行级上的锁和表级上的锁同时存在。为了支持在不同粒度上进行加锁操作,I..
分类:
数据库 时间:
2016-10-06 23:17:43
阅读次数:
205
Android的UI访问是没有加锁的,这样在多个线程访问UI是不安全的。所以Android中规定只能在UI线程中访问UI。 但是有没有极端的情况?使得我们在子线程中访问UI也可以使程序跑起来呢?接下来我们用一个例子去证实一下。 新建一个工程,activity_main.xml布局如下所示: 很简单, ...
分类:
移动开发 时间:
2016-10-04 13:57:02
阅读次数:
266