
锁
醉死梦红尘丶
学学代码,写写代码
展开
-
读写锁实现缓存的简单入门
ReadWirteLock 使用场景:为了提高效率,将业务差分,精确加锁,提高效率 读写锁:ReadWriteLock lock=new ReentrantReadWriteLock(); 获取读锁: Lock lock = this.lock.writeLock(); 获取写锁: Lock lock = this.lock.readLock(); 效果:读读共享,读写不共享,写写互斥 写锁:独占锁 读锁:共享锁 public class ReadWirteLockDemo { public sta原创 2020-09-05 15:14:47 · 212 阅读 · 0 评论 -
数据库进阶MYSQL分层及其优化
1.mysql分层 连接层:提供与客户端连接的服务 服务层:1.提供各种用户使用接口,2提供sql优化器(写的语句和执行可能不一致) 引擎层:提供了各种存储数据的方式 InnoDB :事物优先,(适合高并发操作 使用行锁) MyISAM:性能优先(表锁) 存储层:存储数据 查询数据库支持哪些引擎:show engines; 2.SQL优化 2.1原因:性能低、执行时间长,等待时间长,sql语句欠佳(连接查询),索引失效、服务器参数设置不合理(缓冲、线程数) 2.2sql优化:主要就是优化索引 索原创 2020-09-04 21:34:46 · 424 阅读 · 0 评论 -
各种锁的理解
公平锁非公平锁 区别:是否可以插队(默认都是非公平锁) 设置公平锁:new ReentrantLock(ture) 可重入锁(递归锁) 可以理解为:拿到外面的锁就会获得里面的锁 //Synchronized public class Demo1 { public static void main(String[] args) { Phone phone = new Phone(); new Thread(() -> { phone.sms原创 2020-08-31 20:07:36 · 188 阅读 · 0 评论