乐观锁 悲观锁 独占锁 共享锁 阻塞算法 非阻塞算法 自旋锁 AQS CLH队列锁 MCS队列锁 Ticket队列锁 SMP NUMA CAS ABA问题 原子变量:AtomicReference AtomicInteger AtomicReferenceFieldUpdater ...
分类:
编程语言 时间:
2017-02-25 15:56:44
阅读次数:
164
http://www.cnblogs.com/549294286/p/3766717.html 独占锁:是一种悲观锁,synchronized就是一种独占锁,会导致其它所有需要锁的线程挂起,等待持有锁的线程释放锁。 乐观锁:每次不加锁,假设没有冲突去完成某项操作,如果因为冲突失败就重试,直到成功为止 ...
分类:
编程语言 时间:
2017-01-25 16:29:46
阅读次数:
205
锁分为独占锁和共享锁,它们的主要实现都是依靠AbstractQueuedSynchronizer,这个类只提供一系列公共的方法,让子类来调用。基于我了解不深,从这个类的属性,方法,和独占锁的获取方式去了解这个类。 AbstractQueuedSynchronizer的主要属性和方法: 可以看出这个类 ...
分类:
其他好文 时间:
2016-11-13 16:15:55
阅读次数:
182
独占锁 -- 锁在一个时间点只能被一个线程锁占有。根据锁的获取机制,它又划分为“公平锁”和“非公平锁”。公平锁,是按照通过CLH等待线程按照先来先得的规则,公平的获取锁;而非公平锁,则当线程要获取锁时,它会无视CLH等待队列而直接获取锁。独占锁的典型实例子是ReentrantLock,此外,Reen... ...
分类:
编程语言 时间:
2016-09-21 22:47:48
阅读次数:
124
MySQL事务和隔离级别连接管理器: 接受请求 创建线程 认证用户 建立安全连接 并发控制: 最简单机制是使用锁 多版本并发控制:MVCC(使用其他机制)锁: 读锁:共享锁 写锁:独占锁 加锁: LOCKTABLEStb_name{READ|WRITE}; 解锁: UNLOCKTABLES 锁粒度:从大到小,MySQL服..
分类:
数据库 时间:
2016-09-05 17:22:51
阅读次数:
195
/*
*文件的锁定机制
*flock()轻便的咨询文件锁定
*LOCK_SH取得共享锁定(读取的程序)。
*LOCK_EX取得独占锁定(写入的程序。
*LOCK_UN释放锁定(无论共享或独占)。
*如果不希望flock()在锁定时堵塞,则是LOCK_NB(Windows上还不支持)。
*
*/
/*
*留言板
*/
$filename="messa..
分类:
Web程序 时间:
2016-08-23 17:06:28
阅读次数:
165
一、MySQL的并发控制1、MySQL的并发控制在服务器层和存储引擎层完成锁:lock读锁:共享锁,可以几个用户同事读取,但不能写写锁:独占锁,锁粒度:锁表时锁表的范围(比如一个用户读前三行,一个用户写入最后一行)表级锁:innodb表级锁行级锁:myisa行级锁(锁控制复杂)死锁:..
分类:
数据库 时间:
2016-07-19 11:29:04
阅读次数:
229
注:本文主要介绍了Condition和ReentrantLock工具实现独占锁的部分代码原理,Condition能在线程之间协调通信主要是AbstractQueuedSynchronizer和conditon内有两个队列用来切换,整个协作过程是靠结点在AQS的等待队列和Condition的等待队列中 ...
分类:
其他好文 时间:
2016-07-05 15:31:10
阅读次数:
206
ReentrantLock介绍
ReentrantLock是一个可重入的互斥锁,又被称为“独占锁”。
顾名思义,ReentrantLock锁在同一个时间点只能被一个线程锁持有;而可重入的意思是,ReentrantLock锁,可以被单个线程多次获取。
ReentrantLock分为“公平锁”和“非公平锁”。它们的区别体现在获取锁的机制上是否公平。“锁”是为了保护竞争资源,防止多个线程同时操作线...
分类:
编程语言 时间:
2016-07-01 11:56:56
阅读次数:
284