1、什么是共享锁和排它锁
共享锁就是允许多个线程同时获取一个锁,一个锁可以同时被多个线程拥有。
排它锁,也称作独占锁,一个锁在某一时刻只能被一个线程占有,其它线程必须等待锁被释放之后才可能获取到锁。
2、排它锁和共享锁实例
ReentrantLock就是一种排它锁。CountDownLatch是一种共享锁。这两类都是单纯的一类,即,要么...
分类:
其他好文 时间:
2014-11-16 14:41:40
阅读次数:
220
最近碰到很多锁问题,所以解决了后,仔细再去阅读了关于锁的书籍,整理如下:1,锁的种类Innodb存储引擎实现了如下2种标准的行级锁:? 共享锁(S lock),允许事务读取一行数据。? 排它锁(X lock),允许事务删除或者更新一行数据。 当一个事务获取了行r的共享锁,那么另外一个事务也可以立即获取行r的共享锁,因为读取并未改变行r的数据,这种情况就是锁兼容。但是如果有事务想获得行r的排它锁...
分类:
数据库 时间:
2014-10-30 20:58:06
阅读次数:
416
最近在做一个大型项目,由于数据设计采用离散型数据库设计,以方便需求变更及用户自定义流程要素,因为要素用户自定义,数据完整性靠代码约束变得不太现实,只能依靠表间关系来约束,结果因此导致数据的操作经常产生X(排它)锁,严重影响数据性能。对于一时没有更好解决方法的数据库死锁最直接的解决办法是杀死生成死锁的...
分类:
数据库 时间:
2014-10-25 10:33:05
阅读次数:
213
背景知识: 是什么造成了阻塞? 从锁的观点来看、可访问对象前一定要对对象加锁不管你是读还是写,如果用户A以经持有对象,说明A以在对象上加锁,如果这时B 也想访问这个对象、它也要对对象加锁。重点来了如果A用户加的是排它锁,B用户可以做的就是乖乖等A用完再说。B乖乖等这个问...
分类:
数据库 时间:
2014-10-03 01:58:03
阅读次数:
316
第1种、 共享锁、由读取查寻产生。第2种、 意向锁、用意向锁来表示有将要获得某一资源的意向。第3种、 更新锁、在修改数据前获得。第4种、 排它锁、用于独占某一资源时获得。第5种、 架构锁、运行ddl 语句时产生。第6种、 架构稳定锁、在查询编译时产生,使ddl不能...
分类:
数据库 时间:
2014-10-02 21:24:13
阅读次数:
227
共享锁(S锁):如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁。 获准共享锁的事务职能读取数据,不能修改数据。排他锁(X锁):如果事务T对数据A加上排他锁后,则其他事务不能在对A加任何类型的封锁。 获准排他锁的事务既能读取数据,也能修改数据。数据库死锁的原因:若干事务相互...
分类:
其他好文 时间:
2014-09-22 16:52:32
阅读次数:
196
一,进程复制(或产生)
使用fork函数得到的子进程从父进程的继承了整个进程的地址空间,包括:进程上下文、进程堆栈、内存信息、打开的文件描述符、信号控制设置、进程优先级、进程组号、当前工作目录、根目录、资源限制、控制终端等。
子进程与父进程的区别在于:
1、父进程设置的锁,子进程不继承(因为如果是排它锁,被继承的话,矛盾了)
2、各自的进程ID和父进程ID不同
3、子进程的未决...
分类:
系统相关 时间:
2014-09-20 16:51:29
阅读次数:
447
1.数据库锁一共分为几种?锁一般在什么情况下使用?一个是锁的范围(行锁、页面锁、表锁),另一个是锁的粒度(共享锁、持有锁等)1)指定表锁一般地,SQLServer是不大使用表排它锁的,尤其是对于比较大的表。因为维持一个大的表排它锁会严重影响系统的并发性能。但是呢,如果在没有并发操作的情况下,出现很多...
分类:
数据库 时间:
2014-09-20 11:05:27
阅读次数:
260
锁定提示 描述 HOLDLOCK 将共享锁保留到事务完成,而不是在相应的表、行或数据页不再需要时就立即释放锁。HOLDLOCK 等同于 SERIALIZABLE。 NOLOCK 不要发出共享锁,并且不要提供排它锁。当此选项生效时,可能会读取未提交的事务或一组在读取中间回滚的页面。有可能发生脏读。仅应...
分类:
数据库 时间:
2014-07-22 22:45:14
阅读次数:
284