顺风cysp · · 100 次点击 · · 开始浏览    

锁.png

1、锁的产生是由于资源的竞争:
公平角度,可以分为公平锁、非公平锁;
意识形态,可以分为乐观锁(CAS)、悲观锁;
协同合作,如golang的select/channel机制;
2、锁粒度:
读写分离,可以分为共享锁(读读)、排他锁(读写、写写)
数据粒度,如MySQL的表锁、行锁、间隙锁等;隔离级别越严格,锁颗粒越大;
3、分布式锁:
redis:redission的实现(watchdog机制),redlock(脑裂);
zookeeper:创建临时有序节点,并监听前一个节点变化,当自己是最小序号时可获得锁;
4、线程锁优化(java):
可重入锁(递归锁)
自旋锁(自适应自旋锁)


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:顺风cysp

查看原文:

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:701969077

100 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传