今天研究cobar,做执行时间测试,需要对表记录加锁。用了以下两种方式为表记录加锁。 第一种方式: begin; //开始事务 select * from 表名 ( where ……) for update; // 所以结果集 加锁 commit; // 提交事务,释放锁 第二种方式: 在inser ...
分类:
数据库 时间:
2016-07-06 19:59:05
阅读次数:
183
问题:Thread.join的代码如下,为什么没有加锁却可以wait?另外下面的代码说明线程结束的时候会signal正在wait的线程,实际是signalAll()。 while(isAlive()){ wait(0); } 并发工具类(提供超时等重载方法,含有查询线程排队和统计的接口) 1、Cou ...
分类:
其他好文 时间:
2016-07-06 00:20:04
阅读次数:
183
一次执行 dispatch_once: 对应的代码只执行一次 , 并且它是线程安全的, 系统会自动这个函数加锁,保存同一时间只有一个线程去执行任务, 实现真正意义的一次性执行 什么时候需要用到一次性执行: 单例 单例: 就是在程序运行期间,只有一个实例化对象 举例:音乐播放器的App, 同时只能播放 ...
分类:
编程语言 时间:
2016-07-05 00:59:50
阅读次数:
199
NOLOCK(不加锁) 此选项被选中时,SQL Server 在读取或修改数据时不加任何锁。 在这种情况下,用户有可能读取到未完成事务(Uncommited Transaction)或回滚(Roll Back)中的数据, 即所谓的“脏数据”。 UPDLOCK(修改锁) 此选项被选中时,SQL Ser ...
分类:
数据库 时间:
2016-07-04 15:36:33
阅读次数:
187
1、核心原理是分段加锁 2、Map->Sergent[](使用的是ReentrantLock的非公平模式)->HashEntry[] 3、get操作使用volatile进行了无锁化设计,需要分析下为什么? 4、put操作是串行的,加锁了。 5、分析下hash算法 ...
分类:
其他好文 时间:
2016-07-03 17:23:24
阅读次数:
109
类继承关系: NonfairSync => Sync => AbstractQueuedSynchronizer 类NonfairSync final void lock() { if (compareAndSetState(0, 1)) setExclusiveOwnerThread(Thread ...
分类:
其他好文 时间:
2016-07-01 18:24:52
阅读次数:
193
L1缓存 0.5ns 转移、分支预测 5ns L2缓存 7ns 14倍L1缓存 加锁\解锁 25ns 访问内存 100ns 20倍L2缓存,200倍L1缓存 1K字节压缩(Zippy) 3ns 前兆网卡上发送1k字节 10us SSD随机读4K数据 150us 从内存顺序读1MB数据 250us 同 ...
分类:
其他好文 时间:
2016-06-30 20:01:40
阅读次数:
124
InnoDB行锁实现方式 InnoDB行锁是通过给索引上的索引项加锁来实现的,这一点MySQL与Oracle不同,后者是通过在数据块中对相应数据行加锁来实现的。InnoDB这种行锁实现特点意味着:只有通过索引条件检索数据,InnoDB才使用行级锁,否则,InnoDB将使用表锁! 在实际应用中,要特别 ...
分类:
数据库 时间:
2016-06-30 19:59:19
阅读次数:
204
今天上午和同事火热争论了一番,争来争去围绕的就锁的几个基本概念。 record lock、gap lock、next_key lock 当时争完后发现自己对锁的理解更加透彻了:事务的隔离级别就是通过锁来实现的啊。 RC:仅有record 锁RR:有record和next_key锁 现在我们就来讨论在 ...
分类:
数据库 时间:
2016-06-28 20:11:49
阅读次数:
194
经过一段时间的试用,发现不加锁的共享式开发还是不太方便。还是全部设置为独占式加锁,如有共享式修改需求再设置为不加锁比较好。 经过一番摸索,总结出如下的加锁方式是可行的: 注:第一步是必须的,必须完成第一步才能做后续操作,否则项目无法生成! 1、如果某些项目包含bin、obj等生成的文件夹,如下图右键 ...
分类:
其他好文 时间:
2016-06-27 10:20:10
阅读次数:
185