All too well

Template method pattern

模板模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类提供不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。模板模式的关键在于:父类提供框架性的公共逻辑,子类提供个性化的定制逻辑。 模板模式的定义 在模板模式中,由抽象类定义模板方法和钩子方法,模板方法定义一套业务算法框架,算法框架中的某些步骤由钩子...

显式锁的分类

显式锁有很多种,从不同的角度来看,显式锁大概有以下几种分类:可重入锁与不可重入锁、悲观锁和乐观锁、公平锁和非公平锁、共享锁和独占锁、可中断锁和不可中断锁。 1. 可重入锁与不可重入锁 从同一个线程是否可以重复占有同一个锁对象的角度来分,显式锁可以分为可重入锁与不可重入锁。 可重入锁也被称为递归锁,指的是一个线程可以多次抢占同一个锁。例如,线程A在进入外层函数抢占了一个Lock显式锁之后...

用注意力填满 1000 小时

简要说明 原本只需要一句话就可以彻底说明白: 用你的注意力填满 1000 小时就能练成任何你所需要的技能…… 但是,仍然有必要做进一步详细一点的阐述。 “用你的注意力” 的意思是说,你只能靠自己,谁都一样,只要是真正有用的能力,到最后只能通过自学。往时间里倾注的是谁的注意力,那长出来的能力就只能是谁的 —— 所以,在学习这件事儿上,别人永远使不上劲,哪怕是为了你甚至不惜付出性...

分布式锁笔记

何为分布式锁? 当在分布式模型下,数据只有一份(或有限制),此时需要利用锁的技术控制某一时刻修改数据的进程数。 用一个状态值表示锁,对锁的占用和释放通过状态值来标识。 分布式锁的条件: 互斥性。在任意时刻,只有一个客户端能持有锁。 不会发生死锁。即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁。 具有容错性。只要大部分的 Redis 节点正...