表锁是MySQL最基本的锁策略,并且是开销最小的策略。表锁会锁定整张表,一个用户在对表进行写操作前需要先获得写锁,这会阻塞其他用户对该表的所有读写操作。只有没有写锁时,其他读取的用户才能获取读锁,读锁之间不相互阻塞。 行锁可以最大程度的支持并发,同时也带来了最大开销。innoDB和XtraDB以及一 ...
分类:
数据库 时间:
2021-07-05 19:06:17
阅读次数:
0
在处理并发读或写时,可以通过实现一个由两种类型组成的锁系统来解决问题。这两种锁通常被称为共享锁和排他锁,也叫读锁和写锁。 读锁是共享的,相互不阻塞,多个用户同一时刻可以读取同一个资源而不相互干扰。 写锁是排他的,一个写锁会阻塞其他的写锁和读锁,确保在给定时间内只有1个用户能执行写入并防止其他用户读取 ...
分类:
数据库 时间:
2021-07-05 17:21:02
阅读次数:
0
1、动态库a,动态库b,之间怎么调用全局变量,两个文件之间全局变量是怎么调用的 回答使用extend 2、怎么防止库函数定义不重复 3、函数修饰static有什么作用? 4、宏参数怎么关联使用,例子A,B,C,怎么使用C关联A,B两个宏 5、结构体和共用体说说看? 6、线程是互斥的,怎么保证线程数据 ...
分类:
其他好文 时间:
2021-06-16 17:55:38
阅读次数:
0
1. 介绍 本文我们继续探究使用AQS的子类ReentrantReadWriteLock(读写锁)。老规矩,先贴一下类图 ReentrantReadWriteLock这个类包含读锁和写锁,这两种锁都存在是否公平的概念,这个后面会细讲。 此类跟ReentrantLock类似,有以下几种性质: 可选的公 ...
分类:
编程语言 时间:
2021-06-02 16:39:51
阅读次数:
0
Mutex系列是根据我对晁岳攀老师的《Go 并发编程实战课》的吸收和理解整理而成,如有偏差,欢迎指正~ 目标本系列除了希望彻底学习和了解 golang 中 sync.Mutex 的原理和使用,更希望借 golang 中 Mutex 的发展和演变,了解并发场景下锁的设计与实现方法以及不同业务场景下的一 ...
分类:
其他好文 时间:
2021-04-22 15:35:38
阅读次数:
0
一、进程与线程的区别? 进程是所有线程的集合,每一个线程是进程中的一条执行路径,线程只是一条执行路径。 二、创建线程的三种方式: 继承Thread类创建线程类 实现Runnable接口 通过Callable和Future创建线程 三、创建线程池的四种方式:(参考1) newCachedThreadP ...
分类:
编程语言 时间:
2021-03-06 14:38:29
阅读次数:
0
一 MySQL 事务隔离级别 读未提交(READ UNCOMMITTED):一个事务可以读到其他事务没有提交的数据,会出现脏读、不可重复读、幻读 读已提交(READ COMMITTED):一个事务只能读到另一个已提交的数据修改过的数据,并且其他事务没队该数据进行一次修改并提交后,该事务都能查询到最新 ...
分类:
数据库 时间:
2021-02-22 12:47:48
阅读次数:
0
一、JUC的由来 synchronized 关键字是JDK官方人员用C++代码写的,在JDK6以前是重量级锁。Java大牛 Doug Lea对 synchronized 在并发编程条件下的性能表现不满意就自己写了个JUC,以此来提升并发性能,本文要讲的就是JUC并发包下的AbstractQueued ...
分类:
编程语言 时间:
2021-01-07 11:51:41
阅读次数:
0
ReaderWriterLockSlim-多线程读单线程写 注意事项 (1)线程A如果通过EnterReadLock获取到读锁(ReadLock)后,不能在持有读锁的情况下再申请获取写锁(WriteLock) 如果违反了这个规定就报如下错:Write lock may not be acquired ...
目录 序言 关于本书 第一章 性能分析 benchmark 基准测试 pprof 性能分析 第二章 常用数据结构 字符串拼接性能及原理 切片(slice)性能及陷阱 for 和 range 的性能比较 反射(reflect)性能 第三章 并发编程 读写锁和互斥锁的性能比较 如何退出协程(超时场景) ...
分类:
编程语言 时间:
2020-12-18 12:57:35
阅读次数:
3