从这一节开始介绍锁里面的最后一个工具:读写锁(ReadWriteLock)。ReentrantLock 实现了标准的互斥操作,也就是一次只能有一个线程持有锁,也即所谓独占锁的概念。前面的章节中一直在强调这个特点。显然这个特点在一定程度上面减低了吞吐量,实际上独占锁是一种保守的锁策略,在这种情况下任何...
分类:
编程语言 时间:
2014-12-02 23:59:35
阅读次数:
527
1、什么是共享锁和排它锁
共享锁就是允许多个线程同时获取一个锁,一个锁可以同时被多个线程拥有。
排它锁,也称作独占锁,一个锁在某一时刻只能被一个线程占有,其它线程必须等待锁被释放之后才可能获取到锁。
2、排它锁和共享锁实例
ReentrantLock就是一种排它锁。CountDownLatch是一种共享锁。这两类都是单纯的一类,即,要么...
分类:
其他好文 时间:
2014-11-16 14:41:40
阅读次数:
220
简介: 在Android平台上,继承了一个嵌入式关系型数据库---SQLite.SQLite具有跨平台特性,可以在所有主要的操作系统上运行。SQLite通过独占性和共享锁实现独立事务处理,因此多个进程可以在同一时间从同一数据库读取数据,但只有一个可以写入数据,在进行写操作之前,必须先获得独占锁。另....
分类:
移动开发 时间:
2014-08-12 00:00:13
阅读次数:
356
1,采集网页用的curl 系列函数。 可以模拟登陆,模拟ip,抓取网页,通过抓取的网页来提取数据。 2,flock 文件锁。 ( LOCK_SH取得共享锁定(读取的程序)。 LOCK_EX 取得独占锁定(写入的程序。 LOCK_UN 释放锁定(无论共享或独占) ) 用在模拟进程锁方面的。 3,fso...
分类:
其他好文 时间:
2014-08-08 21:00:06
阅读次数:
314
读写锁的概念很简单,允许多个线程同时获取读锁,但同一时间只允许一个线程获得写锁,因此也称作共享-独占锁。在C#中,推荐使用ReaderWriterLockSlim类来完成读写锁的功能。某些场合下,对一个对象的读取次数远远大于修改次数,如果只是简单的用lock方式加锁,则会影响读取的效..
分类:
其他好文 时间:
2014-08-05 03:14:39
阅读次数:
271
解除文件的独占锁定,通过ZwQuerySystemInformation查询当前系统的所有句柄信息, 然后调用OpenProcess获取目标进程句柄,遍历当前所有进程, 根据进程ID, 得到此进程打开的所有句柄信息, 接下来用DuplicateHandle复制Handle到本地进程,然后通过文件句柄获取对应的文件对象的完整名字.确定文件名后, 如果要删除文件, 则调用OpenProcess与DuplicateHandle关闭句柄, 然后ZwDeleteFile删除文件。...
分类:
其他好文 时间:
2014-07-28 00:28:59
阅读次数:
256
众所周知,windows平台上实现线程同步,或者说资源的加锁与解锁的方法有内核事件、临界区、互斥量、信号量,甚至interlocked系列函数等多种手段。但是在日常的编程中,我们使用这些手段对 “多个线程同时对同一个资源进行读写”
的时候,在读写之前先要对资源假锁,读写完之后要对资源解锁。
设想这样一种情况,有一个ftp服务器,每天有很频繁的对这个ftp服务的文件进行下载,但是几乎好几天才会对...
1.RR隔离级别:在此隔离级别下, DB2会锁住所有相关的纪录。 在一个SQL语句执行期间, 所有执行此语句扫描过的纪录都会被加上相应的锁。在一个SQL语句执行期间,所有执行此语句扫描过的纪录都会被加上相应的锁。 具体的锁的类型还是由操作的类型来决定, 如果是读取,则加共享锁; 如果是更新, 则加独占锁。具体的锁的类型还是由操作的类型来决定,如果是读取,则加共享锁;如果是更新,则加独占锁。
由...
分类:
数据库 时间:
2014-06-26 10:45:49
阅读次数:
352
贪婪是一种原罪,不要再追求性能的路上离正确越来越远。
内存模型
java内存模型重排序
锁synchronized
什么是锁独占锁分拆锁分离锁分布式锁
volatile
内存模型
java内存模型
提到同步、锁,就必须提到java的内存模型,为了提高程序的执行效率,java也吸收了传统应用程序的多级缓存体系。
在共享内存的多处理器体系架构中,每...
分类:
其他好文 时间:
2014-06-18 12:00:22
阅读次数:
225
独占锁:是一种悲观锁,synchronized就是一种独占锁,会导致其它所有需要锁的线程挂起,等待持有锁的线程释放锁。乐观锁:每次不加锁,假设没有冲突去完成某项操作,如果因为冲突失败就重试,直到成功为止。一、CAS
操作乐观锁用到的机制就是CAS,Compare and Swap。CAS有3个操作数...
分类:
编程语言 时间:
2014-06-06 14:00:39
阅读次数:
452