前言
关于线程安全一提到可能就是加锁,在面试中也是面试官百问不厌的考察点,往往能看出面试者的基本功和是否对线程安全有自己的思考。
那锁本身是怎么去实现的呢?又有哪些加锁的方式呢?
我今天就简单聊一下乐观锁和悲观锁,他们对应的实现 CAS ,Synchronized,ReentrantLock
正文
一个120斤一身黑的小伙子走了进来,看到他微微发福的面容,看来是最近疫情伙食好运动少的结果,他难道就是今天的面试官渣渣丙?
等等难道是他?前几天刷B站看到的不会是他吧!!!
Tip:比较 更新 整体是一个原子操作,当然这个流程还是有问题的,我下面会提到。
他是乐观锁的一种实现,就是说认为数据总是不会被更改,我是乐观的仔,每次我都觉得你不会渣我,差不多是这个意思。
锁其实有很多,我这里只是简单的介绍了一下乐观锁和悲观锁,后面还会有,自旋锁,自适应自旋,公平锁,非公平锁,可重入(文中提到的都是可重入),不可重入锁,共享锁,排他锁等。
多去了解他们的用法,多去深究他们的原理以及实现,我后面会持续更新多线程方面的知识点。