在Linux C/C++编程中,有时我们需要某个文件同时只能被一个进程打开,那么此时我们就需要多此文件进行加锁,系统中提供了两个函数来对文件加锁 flock()和fcntl(),本文主要讲解flock()的使用及其它的一些限制。...
分类:
系统相关 时间:
2014-06-19 12:38:06
阅读次数:
347
MySQL锁不同的存储引擎支持不同的锁:MyISAM和MEMORY采用的是表级锁BDB采用的是页面锁,也支持表级锁InnoDB默认采用行级锁,也支持表级锁3种锁类型:表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低行级锁:开销大,加锁慢,会出现死锁,锁定粒度最小,发...
分类:
数据库 时间:
2014-06-15 22:14:44
阅读次数:
373
在前面我们在解决线程同步问题的时候使用了synchronized关键字,今天我们来看看Java 5.0以后提供的线程锁Lock.Lock接口的实现类提供了比使用synchronized关键字更加灵活和广泛的锁定对象操作,而且是以面向对象的方式进行对象加锁。 @Override
public void run() {
while(true){
Lock lock = new Re...
分类:
移动开发 时间:
2014-06-11 00:57:51
阅读次数:
329
前言在上篇文章中提到了MySQL 5.6 Online DDL,如果是MySQL
5.5的版本在DDL方面是要付出代价的,虽然已经有了Fast index
Creation,但是在添加字段还是会锁表的,而且在添加删除辅助索引是会加S锁,也就是无法进行写操作。所以,这里就有相关工具的出现,那就是pt-...
分类:
其他好文 时间:
2014-06-10 11:32:56
阅读次数:
323
twisted诞生于2000年初,作者为Glyph,目的是为了开发网络游戏。twisted的历史:Glyph开始采用Java多线程,来开发Twisted
Reality,结果多线程使得开发变得复杂,难以扩展。出现了死锁,加锁出错,缓存污染等问题。Glyph发现自己打开了问题的大门,他需要自己实现一个...
分类:
其他好文 时间:
2014-06-09 18:15:04
阅读次数:
268
在之前的一片随笔中,简单的说了一下SQL Server中的隔离级别。而SQL
Server的隔离级别是通过锁的机制来实现的。现在深入一下,谈谈SQL
Server中的锁。开始之前,先要定义一下前提:1.隔离级别的实现其实就是在不同的资源上加锁。2.对数据库的每一次访问(CRUD)我们称其为一个事务(...
分类:
数据库 时间:
2014-06-09 00:13:36
阅读次数:
251
ConcurrentHashMap
ConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和HashTable功能相同但是线程安全的方法。ConcurrentHashMap可以做到读取数据不加锁,并且其内部的结构可以让其在进行写操作的时候能够将锁的粒度保持地尽量地小,不用对整个ConcurrentHashMap加锁。
ConcurrentHashM...
分类:
编程语言 时间:
2014-06-08 15:38:47
阅读次数:
326
上上周的事情了,端午小长假将近,还是按往常一样,最后一天一定要搞一个“课题”,场面不大,一天就能搞定的东西,如果说系统学习vim或者Emacs之类的,那就算了...还好,问题呼之即来,那就是write系统调用是不是原子的,答案很显然,不是!但大师说带有APPEND标志的write是原子的,很多软件的日志都是O_APPEND打开,然后在不加锁的情况下直接write的,不会出现问题,此事如何证实?本文...
分类:
移动开发 时间:
2014-06-08 02:19:57
阅读次数:
309
上上周的事情了,端午小长假将近,还是按往常一样,最后一天一定要搞一个“课题”,场面不大,一天就能搞定的东西,如果说系统学习vim或者Emacs之类的,那就算了...还好,问题呼之即来,那就是write系统调用是不是原子的,答案很显然,不是!但大师说带有APPEND标志的write是原子的,很多软件的日志都是O_APPEND打开,然后在不加锁的情况下直接write的,不会出现问题,此事如何证实?本文...
分类:
移动开发 时间:
2014-06-08 02:13:25
阅读次数:
339
数据库管理系统通过加锁和事务解决并发性和数据一致性问题锁方式共享锁排它锁粒度库锁表锁行锁协议两段锁协议
分类:
其他好文 时间:
2014-06-08 01:24:55
阅读次数:
177