业务随想
文章平均质量分 72
afin de
这个作者很懒,什么都没留下…
展开
-
简述synchronized、lock和原子类的原理
文章目录场景一、synchronized二、Lock 场景 当我们在多线程的环境下操作一些共享数据,此时大量的读写操作对数据进行操作,怎样保证数据的一致性,安全性? 一、synchronized synchronized是一个基于jvm的重量级的锁,他可以保证线程的绝对安全,但是也有一些问题:比如它是非公平的,它的性能不高。 它的底层原理实际上是在jvm有一个是类似于计数器的东西叫做monitor,它默认情况下是0,但我们加锁的时候就+1变为1,解锁就是-1变为0,由于Synchronized是一个对象锁原创 2022-05-16 15:23:32 · 163 阅读 · 0 评论 -
多线程环境下的读写分离思考
文章目录场景一、synchronized 或者lock锁二、从kafka源码获取灵感 场景 当我们在多线程的环境下操作一个集合,比如 ArrayList或者Hashmap,这些集合默认情况下肯定是线程不安全的,如果说多个线程同时去读和写这些集合就会有线程安全问题。 好,问题来了,我们应该怎么让一个集合变成线程安全的呢? 一、synchronized 或者lock锁 有一个非常简单的办法,对这些集合的访问都加上线程同步的控制,或者说是加锁。 最简单的做法就是加一个Synchronized或者Lock锁。 我原创 2022-05-16 14:46:07 · 492 阅读 · 1 评论