第1章 MySql架构 1.1 MySql逻辑架构 第一层:连接层,负责连接处理、授权认证、安全等。 第二层:Server层,提供MySql核心服务,查询解析、分析、优化、缓存、内置函数、存储过程、触发器、视图等跨存储引擎的功能。 第三层:存储引擎层。负责数据的存储和提取。 1.2 并发控制 服务器 ...
分类:
数据库 时间:
2020-09-17 21:40:41
阅读次数:
36
AQS的内容还是有一定的难度的,为了让大家学习起来更轻松,这里从零讲起,一步一步深入,本节内容包括:1:理解AQS是什么、能干什么2:理解独占锁和共享锁3:理解AQS基本的设计思路:图示具体的内容,请参看视频吧!文字的东西总是不如视频来得直观和清晰精彩还在继续,相关视频均发布在公众号,欢迎关注公众号
分类:
其他好文 时间:
2020-09-17 13:13:09
阅读次数:
22
ReadWriteLock: 一个用于只读操作,一个用于写入操作;读的时候可以由多个线程进行,写的时候只能有一个。 读-读:可以共存 读-写:不可共存 写-写:不可共存 读锁:共享锁 写锁:独享锁 代码示例 package pers.vincent.matrix.subject.readwrite; ...
分类:
其他好文 时间:
2020-08-07 12:32:20
阅读次数:
64
今天在看分库分表的时候突然想到了锁 现在我们就来看看锁 mysql举例: InnoDB引擎的行锁和表锁 表锁:不会出现死锁,发生锁冲突几率高,并发低。 行锁:会出现死锁,发生锁冲突几率低,并发高。 锁冲突:例如说事务A将某几行上锁后,事务B又对其上锁,锁不能共存否则会出现锁冲突。(但是共享锁可以共存 ...
分类:
其他好文 时间:
2020-08-04 18:17:50
阅读次数:
78
JAVA锁分类Java中锁有多重分类方式,根据粒度可分为:重量锁、轻量锁、偏向锁、分段锁;根据锁获取公平性又分为:公平锁、非公平锁。根据策略又分为:乐观锁、悲观锁、自旋锁;根据不同的分类还有:共享锁、独占锁、可重入锁、互斥锁等概念。重量级锁Synchronized是通过对象内部的一个叫做监视器锁(monitor)来实现的。但是监视器锁本质又是依赖于底层的操作系统的MutexLock来实现的。而操作
分类:
编程语言 时间:
2020-07-27 10:01:22
阅读次数:
98
1.同步锁(单线程,集群可能会失效) 2.分布式锁如redis(实现复杂) 2.业务字段加唯一约束(简单) 3.令牌表+唯一约束(简单推荐) 4.mysql的insert ignore或者on duplicate key update(简单) 5.共享锁+普通索引(简单) 6.利用MQ或者Redis ...
分类:
其他好文 时间:
2020-07-23 22:59:17
阅读次数:
97
Semaphore Semaphore 字面意思是信号量的意思,它的作用是控制访问特定资源的线程数目。应用场景:资源访问,服务限流。 Semaphore 实现AbstractQueuedSynchronizer的方法与ReentrantLock一样 Semaphore构造方法 public Sema ...
分类:
其他好文 时间:
2020-07-18 22:55:40
阅读次数:
108
This section describes lock types used by InnoDB. 翻译:本节描述了InnoDB使用的锁类型。 Shared and Exclusive Locks(共享锁和排他锁) Intention Locks(意向锁) Record Locks(记录锁) Gap ...
分类:
数据库 时间:
2020-07-18 22:25:46
阅读次数:
107
参考文章:https://blog.csdn.net/puhaiyang/article/details/72284702 一.mysql锁的结构图 如上图所示,针对mysql的innodb存储引擎,mysql锁包括了乐观锁和悲观锁。而悲观锁又包括共享锁和排它锁,共享锁/排它锁里又有行锁和表锁的实现 ...
分类:
数据库 时间:
2020-07-07 09:20:07
阅读次数:
71
Semaphore信号量原理 Semaphore是一个计数信号量,本质是"共享锁". Semaphore维护一个信号量许可集. 线程可以调用acquire()获得信号量的许可. 线程可以调用release()释放其持有的信号量. 使用acquire()请求获得信号量时,若信号量有可用的许可时,线程获 ...
分类:
其他好文 时间:
2020-07-04 18:45:22
阅读次数:
80