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