摘要: 先聊下redis普通的分布式锁,用 1.单节点、主从/哨兵模式的分布式锁,安全吗? 或许你了解过,通过如下方式加锁: 设置锁时,使用set命令,因为其包含了setnx,expire的功能,起到了原子操作的效果,给key设置随机值,并且只有在key不存在时才设置成功返回True,并且设置key的过期时 阅读全文
posted @ 2020-03-29 17:42 架构之路 阅读(1442) 评论(0) 推荐(0)
摘要: Synchronize是重量级锁吗?是互斥锁吗? 它的实现原理? 前言 线程安全是并发编程中的重要关注点,造成线程安全问题的主要诱因有两点,一是存在共享数据(也称临界资源),二是存在多个线程共同操作共享数据。因此为了解决这个问题,我们可能需要这样一个方案,当存在多个线程操作共享数据时,需要保证同一时 阅读全文
posted @ 2020-03-22 18:18 架构之路 阅读(1783) 评论(0) 推荐(0)
摘要: 或许你经常被问到? Volatile关键字有何作用? 实现这些作用的底层如何实现? Volatile能够保障可见性、有序性?原子性吗? 前言 我们都知道,Java代码在编译后会变成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化为汇编指令在CPU上执行,Java中所使用 阅读全文
posted @ 2020-03-22 17:08 架构之路 阅读(562) 评论(0) 推荐(0)
摘要: 读了本文,你会知道,为什么不加volatile关键字的单例模式不是线程安全的 有经验的开发者都知道双重锁定检查(DCL,Double Check Lock)的单例是最优秀的,如下文所示: 1 public class Singleton { 2 private static Singleton in 阅读全文
posted @ 2020-03-22 16:35 架构之路 阅读(787) 评论(0) 推荐(0)
摘要: 一张图搞明白Java线程状态 1,如图所示,总共有6个状态 阅读全文
posted @ 2020-03-20 23:59 架构之路 阅读(183) 评论(0) 推荐(0)
摘要: 若你不明白下面的问题,可以继续看。 1.线程正在执行,interrupt可以打断吗?sleep可以打断吗? 2.stop 和interrupt有什么区别? 话不多说,上代码 1 /** 2 * Descritpion: 3 * 4 * @auther wangpeng 5 * @create 202 阅读全文
posted @ 2020-03-20 23:58 架构之路 阅读(1046) 评论(0) 推荐(1)
摘要: 底层实现数据结构 1.7数组+链表 思考:为什么不用双向链表 1.8+的数组+链表+红黑树 一些重要的变量 //默认初始容量16 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; //容量最大值 static final int MAXIMUM_ 阅读全文
posted @ 2020-03-18 00:17 架构之路 阅读(147) 评论(0) 推荐(0)
摘要: 参考:https://www.jianshu.com/p/bae8291d9ab8 快速排序Java实现 leilifengxingmw关注赞赏支持 阅读全文
posted @ 2020-03-18 00:09 架构之路 阅读(135) 评论(0) 推荐(0)
摘要: 基本概念 Roaring BitMap 以下简称 RBM,中文翻译为咆哮位图,它本质上是定义了一个很大的 bit 数组,每个元素对应到 bit 数组的其中一位,一个Integer是32-bit, 一共有Integer.MAX_VALUE = 2 ^ 32个值,32-bit的unsigned inte 阅读全文
posted @ 2020-03-18 00:08 架构之路 阅读(1413) 评论(0) 推荐(0)
摘要: ThreadLocal 其本质上就是避免共享 正所谓是没有共享,就没有伤害.下面来看看ThreadLocal 的源码,Thread类中包含了一个threadLocals变量,它是一种ThreadLocal.ThreadLocalMap类型,该类型定义在ThreadLocal类里面,也就是一个内部类。 阅读全文
posted @ 2020-03-10 00:04 架构之路 阅读(239) 评论(0) 推荐(0)
========================================================================== 如果您觉得这篇文章对你有帮助,可以【关注我】或者【点赞】,希望我们一起在架构的路上,并肩齐行 ==========================================================================