Lock比传统的线程模型synchronized更多的面向对象的方式。锁和生活似,应该是一个对象。两个线程运行的代码片段要实现同步相互排斥的效果。它们必须用同一个Lock对象。读写锁:分为读锁和写锁。多个读锁不相互排斥,读锁与写锁相互排斥,这是由jvm自己控制的,你仅仅要上好对应的锁就可以。假设你的...
分类:
编程语言 时间:
2015-07-23 10:38:08
阅读次数:
117
1.FLUSH TABLES WITH READ LOCK这个命令是全局读锁定,执行了命令之后所有库所有表都被锁定只读。一般都是用在数据库联机备份,这个时候数据库的写操作将被阻塞,读操作顺利进行。解锁的语句也是unlock tables。2.LOCK TABLEStbl_name[ASalias] ...
分类:
其他好文 时间:
2015-07-19 16:16:04
阅读次数:
132
Jodd cache提供了一组cache的实现,其层次如下:其中,AbstractCacheMap是一个具有计时和大小的缓存map的默认实现,它的实现类必须: 创建一个新的缓存map。 实现自己的删除(prune)策略。内部使用ReentranReadWriteLock来同步。因为从一个读锁升级.....
分类:
系统相关 时间:
2015-07-16 13:15:29
阅读次数:
156
悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。乐观锁(Opt...
分类:
其他好文 时间:
2015-07-16 02:06:56
阅读次数:
152
#includeint fcntl(fd,F_GETLK/F_SETLK/F_SETLKW,struct flock *flockptr);F_GETLK:测试flockptr描述的锁,是否和现有锁冲突。冲突:现有锁写入flockptr中;不冲突:flockptr不变。F_SETLK:试图获得读锁、...
分类:
其他好文 时间:
2015-07-12 17:22:25
阅读次数:
122
准备工作1.对失去响应进程创建转储文件2.配置该进程的pdb文件3.复制该进程所在机器的系统dll(sos.dll, clr.dll, mscordacwks.dll)4.配置系统dll的pdb文件路径, 或者直接从msdl.microsoft/download/symbols下载(注意端口是否被封)分析过程:1.利用~*e !clrstack得到UI线程的ID 为122.利用~12e !cl...
内容:读锁时共享的,写锁时互斥的(可见运行结果),都是通过AQS实现的。
public class ReentrantReadWriteLockTest {
static class MyObject {
private Object object;
private ReadWriteLock lock = new ReentrantReadWriteLock();
pu...
分类:
编程语言 时间:
2015-07-07 22:49:41
阅读次数:
204
【共享锁】【读锁】共享锁(Share locks 简记为S锁)【独占锁】(事务结束释放)【写锁】排它锁(Exclusive locks 简记为X锁)【更新锁】(避免共享锁的死锁情况)【封锁协议 】 1 级封锁协议是:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。事务结束包括正常结束(....
分类:
数据库 时间:
2015-07-04 00:49:20
阅读次数:
154
今天来总结一下MySQL主从复制技术。不多说,直接操作+配图。主服务器(192.168.1.111)配置:1、给从服务器设置授权用户2、修改主服务器的配置文件my.cof,开启bin-log日志,并设置server-id值(每一台server-id都要不一样)3、在主服务器上设置读锁定有效,确保没有...
分类:
其他好文 时间:
2015-06-25 19:25:57
阅读次数:
104
1、MySQL并发控制机制并发控制:每个会话会启动一个mysql线程服务器层:用于控制锁存储引擎层:并发访问控制基本上应该由存储引擎层完成锁:lock读锁:共享锁写锁:独占锁锁力度:表级锁:myisam表级锁行级锁:innodb行级锁锁分类:隐式锁:由存储引擎自动完成显示锁:用户可手..
分类:
数据库 时间:
2015-06-20 01:37:07
阅读次数:
257