Java多线程系列--“JUC锁”11之 Semaphore信号量的原理和示例 Semaphore简介 Semaphore是一个计数信号量,它的本质是一个"共享锁"。 信号量维护了一个信号量许可集。线程可以通过调用acquire()来获取信号量的许可;当信号量中有可用的许可时,线程能获取该许可;否则 ...
分类:
编程语言 时间:
2017-08-18 16:17:10
阅读次数:
231
转自:https://tech.meituan.com/innodb-lock.html 前言: 我们都知道事务的几种性质,数据库为了维护这些性质,尤其是一致性和隔离性,一般使用加锁这种方式。同时数据库又是个高并发的应用,同一时间会有大量的并发访问,如果加锁过度,会极大的降低并发处理能力。所以对于加 ...
分类:
数据库 时间:
2017-08-17 10:37:14
阅读次数:
286
锁的分类 从对数据的类型 (读\写)分: 1.读锁(共享锁):针对同一份数据,多个读操作可以同时进行而不会互相影响 2.写锁(排它锁):当前写操作没有完成前,它会阻断其他写锁和读锁 从对数据操作的粒度分: 1.表锁 2.行锁 表锁(偏读) 1.偏向MyISAM存储引擎,开销小,加锁快;无死锁;锁的粒 ...
分类:
数据库 时间:
2017-08-16 11:25:26
阅读次数:
245
在电子商务里,经常会出现库存数量少,购买的人又特别多,大并发情况下如何确保商品数量不会被多次购买. 其实很简单,利用事务+for update就可以解决. (for update仅仅适用于InnoDB) 我们都知道for update实际上是共享锁,是可以被读取的.但是如何在执行时,不被读取呢. 简 ...
分类:
数据库 时间:
2017-08-13 13:21:57
阅读次数:
252
通常锁分为悲观锁和乐观锁,所谓悲观锁就是处处提防着其人操作,生怕别人和自己抢资源,所以一上来就加锁了,而乐观锁就是老是乐天派觉得没人会和自己抢资源,只要按照规则来就没事。悲观锁分读锁和写锁,无论是读锁还是写锁,都不影响查询,查询大家都可以执行而且获取到结果,两把锁的区别就是读锁可以共享锁可以同时多人 ...
分类:
数据库 时间:
2017-08-12 19:01:55
阅读次数:
209
一、locking 锁 1、Shared and exclusive locks innodb实现了两种类型的行级锁(锁粒度)Shared(s)locks 共享锁:允许持有锁的事务去读取行记录。Exclusive(x)locks 排它锁:允许持有锁的事务更新、删除行记录。如果事务t1持有了行记录r的 ...
分类:
数据库 时间:
2017-07-27 20:27:33
阅读次数:
257
原文链接在MySQL中的行级锁,表级锁,页级锁中介绍过,行级锁是Mysql中锁定粒度最细的一种锁,行级锁能大大减少数据库操作的冲突。行级锁分为共享锁和排他锁两种,本文将详细介绍共享锁及排他锁的概念、使用方式及注意事项等。 共享锁(Share Lock) 共享锁又称读锁,是读取操作创建的锁。其他用户可 ...
分类:
数据库 时间:
2017-07-18 16:46:22
阅读次数:
180
近期碰到非常多锁问题。所以攻克了后,细致再去阅读了关于锁的书籍,整理例如以下:1,锁的种类Innodb存储引擎实现了例如以下2种标准的行级锁:? 共享锁(S lock),同意事务读取一行数据。? 排它锁(X lock)。同意事务删除或者更新一行数据。 当一个事务获取了行r的共享锁。那么另外一个事务也 ...
分类:
数据库 时间:
2017-07-15 19:57:08
阅读次数:
256
释义 共享锁:(读取)操作创建的锁。其他用户可以并发读取数据,但任何事物都不能获取数据上的排它锁,直到已释放所有共享锁。 共享锁(S锁)又称为读锁,若事务T对数据对象A加上S锁,则事务T只能读A;其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这就保证了其他事务可以读A,但在T释放A上 ...
分类:
其他好文 时间:
2017-07-06 21:24:58
阅读次数:
266
今天看到一篇博文里面提到了共享锁,举例有 CyclicBarrier,CoutDownlatch等,就翻了下源码加深下理解,(之前对共享锁的理解没有对应到具体引用类中),看到CoutDownlatch里面用到了aqs基础类的共享锁相关的方法,然而CyclicBarrier里面只用到了Reentran ...
分类:
其他好文 时间:
2017-07-03 16:31:29
阅读次数:
157