基本概念 1.AQS:AbstractQueuedSynchronizer类 AQS是java中管理“锁”的抽象类,锁的许多公共方法都是在这个类中实现。AQS是独占锁(例如,ReentrantLock)和共享锁(例如,Semaphore)的公共父类。 (01) 独占锁 -- 锁在一个时间点只能被一个 ...
分类:
编程语言 时间:
2017-05-31 10:29:13
阅读次数:
193
Semaphore 概述 共享锁,运行多个线程同时临界区 主要接口 public void acquire()public void acquireUninterruptibly()public boolean tryAcquire()public boolean tryAcquire(long t ...
分类:
其他好文 时间:
2017-05-27 10:56:51
阅读次数:
249
repeatable read 在同一事务中,同一查询多次进行时候,由于其他插入操作(insert)的事务提交,导致每次返回不同的结果集。 标准的repeatable read是允许幻读的,因为这一级别只在读取过的纪录上加共享锁,防止别其它事务修改,但是不禁止其它人插入新数据. 当第一次读的时候,他 ...
分类:
数据库 时间:
2017-05-17 21:34:26
阅读次数:
238
Mysql 使用 插件式存储引擎 Mysql 体系结构 mysql服务层 存储引擎层 都属于存储引擎 MyISAM 存储引擎 frm 是记录结构的, MYD和 MYI 是MyISAM 特有的 例 表级锁,对数据进行修改时需要全表加锁。读取时也是需要家共享锁。对读写操作并发性不是很好,但是只读的话不怎 ...
分类:
数据库 时间:
2017-05-17 18:27:54
阅读次数:
329
锁的基本原理 为了保证数据的完事性和一致性,数据库系统采用锁来实现事务的隔离性。各种大型数据库采用的锁基本理论是一致的,但在具体实现上各有差别。 从并发事务锁定的关系上看,可以分为共享锁定和独占锁定。从锁定的对象不同,一般可以分为表锁定和行锁定。 锁 共享锁用于读取数据操作,它是非独占的,允许其他事 ...
分类:
数据库 时间:
2017-05-12 00:02:58
阅读次数:
255
/ 查询缓存不开启 $r = mysql_query(“SELECT username FROM user WHERE signup_date >= CURDATE()”); // 开启查询缓存 $today = date(“Y-m-d”); $r = mysql_query(“SELECT use ...
分类:
数据库 时间:
2017-05-09 13:55:42
阅读次数:
221
共享锁(S锁)又称读锁,若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S 锁.这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改. 排他锁(X锁)又称写锁.若事务T对数据对象A加上X锁,事务T可以读A也可以修改A ...
分类:
其他好文 时间:
2017-05-08 12:33:36
阅读次数:
127
文件锁 bool flock ( int handle, int operation [, int &wouldblock] );flock() 操作的 handle 必须是一个已经打开的文件指针。operation 可以是以下值之一: 常用文件函数 查看文件是否存在:file_exists() 确 ...
分类:
Web程序 时间:
2017-05-04 16:25:12
阅读次数:
140
众所周知,windows平台上实现线程同步。或者说资源的加锁与解锁的方法有内核事件、临界区、相互排斥量、信号量,甚至interlocked系列函数等多种手段。可是在日常的编程中,我们使用这些手段对 “多个线程同一时候对同一个资源进行读写” 的时候,在读写之前先要对资源假锁,读写完之后要对资源解锁。 ...
mysql,如果多个请求同时,请求操作一个表,一个存,一个读,就会造成脏读.所以有了事务,有了锁表 linux在多个进程同时操作同一份文件的时候,很容易导致文件混乱,这时候就需要锁,来保证文件的完成性. flock主要三种操作类型: lock_sh,常被用作读共享锁; LOCK_EX,只能被一个进行 ...
分类:
系统相关 时间:
2017-04-20 17:01:05
阅读次数:
257