10 2022 档案
摘要:加锁的前提 共享资源被多个线程同时所消费,造成业务逻辑错误 加锁位置 有两种方案: 共享资源在哪,就对哪进行加锁 如果共享资源在应用上,可以使用JVM自带的本地锁,如synchronized和lock 如果在数据库上,使用数据库自带的锁 在统一的第三方程序上加锁(如redis、zookeeper)
阅读全文
摘要:什么是并发和并行 并发:单个CPU在做多个线程的任务。简单理解:1位服务员(CPU),同一时间只能服务1位客人(线程),但可以服务完这位后,去服务下一位,服务多位客人即多个任务。 并行:多个CPU在做多个线程的任务。简单理解:多位服务员(CPU),同一时间可以服务多位客人(线程) Java多线程 J
阅读全文
摘要:死锁 因为我其他文章有贴过死锁的代码,就不贴了。说下什么是死锁。 举个生活的例子:两个女孩打架,互相揪着对方的头发不松手,让对方先放她才放。嗯,这个情况就是死锁。 死锁的必备条件 死锁必须至少具备两个及以上的锁对象 在不同的执行代码路径中,用到了2个及以上的锁对象。比如A代码路径用到C,D锁,B代码
阅读全文
摘要:线程生命周期 我喜欢打比喻的方式,这样能记住每个周期的意思。 如果你想去参加格斗比赛,报名了就是参数选手,此时你已是 新建状态 比赛那天,双方就位(还没开始打),互相握手阶段,此时你是就绪状态 开打!在打斗的整个过程状态是运行状态 一回合结束了,中场休息,休息阶段是阻塞状态 当格斗结束分成胜负了,此
阅读全文
摘要:索引分类 按物流实现上,分为聚集索引和非聚集索引(二级索引和联合索引) 按功能逻辑上,可以分为普通索引,唯一性索引,主键索引,联合索引,全文索引 普通索引 在非主键列上创建一个索引,即普通索引。 唯一性索引 为某列创建唯一性约束,会自动加上唯一性索引。使用唯一性索引的列,要保证此列的值唯一才行(nu
阅读全文
摘要:聚集索引 聚集索引概述 聚集索引特点 聚集索引优缺点 聚集索引限制 聚集索引真实开发总结 1张表只能有1个聚聚索引,都是用主键作为聚聚索引使用。因此在建表的时候聚集索引的任务就完成了,后续也不需瞎操心。 实际我们优化查询建的更多的是非聚集索引。 非聚集索引 二级索引(辅助列索引) 二级索引概述 二级
阅读全文
摘要:索引概述 索引优缺点 优点(1)是索引的关键,优点(3)和优点(4)其实是创建索引后顺带的福利。 缺点(1)和(2)是小缺点,真正的大缺点是(3)。好比你在原本已经订好目录的书上再插入新的1页,意味着目录(索引)要随之改变 小技巧
阅读全文