摘要: 在使用分布式缓存时,会用到多台服务器,当我们需要使用某个缓存时,常用的做法是 hash(数据内容) % n 其中,hash() - 对数据内容进行 hash 操作, % - 取模操作,n - 服务器数量。 但如此做,会产生一些问题,例如: 在服务器数量发生变化时,缓存的位置会发生变化,需要对所有缓存 阅读全文
posted @ 2021-11-06 01:40 Dozeer 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 在本篇主要整理一下 1.8 的 HashMap 进行分析,主要从以下方面: 存储结构 扩容机制 基本属性 下面列出 HashMap 中的属性值并加以节是 // 部分常量 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // 初始大小 16 st 阅读全文
posted @ 2021-11-03 12:42 Dozeer 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 需要了解 AQS 知识。 CountDownLatch 能够等待一个或一组线程,直到其他线程执行完成(计数器减为 0)时,才继续执行。 其实调用线程的 join() 方法能够实现等待线程完成后再继续执行的场景。 不过 CountDownLatch 更为灵活:https://blog.csdn.net 阅读全文
posted @ 2021-11-02 20:09 Dozeer 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 参考链接: https://www.bilibili.com/video/BV1ta4y1H73X 需要具备 AQS 知识 可重入指的是单个线程执行时重新进入同一个子程序仍是线程安全的。 如果是不可重入,若 A 获得锁,要再次请求该锁时就会造成死锁 简单来说,就是一个线程可以不用释放即可重复获得该锁 阅读全文
posted @ 2021-10-29 20:52 Dozeer 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 参考链接:https://www.bilibili.com/video/BV12K411G7Fg 通过 CAS ,我们可以实现乐观锁操作,从而使得线程进行同步,但是通过 CAS 的源码,我们发现 CAS 仅仅能修改内存中的一个值,而不是对对象进行同步,那么该如何对对象进行同步呢?同时,在多线程对统一 阅读全文
posted @ 2021-10-29 17:24 Dozeer 阅读(79) 评论(0) 推荐(0) 编辑
摘要: synchronized 是 Java 的关键字之一,提供一种原子性的内部锁,Java 中的每个对象都可以把它当作一个同步锁使用,这种 Java 内置的使用者看不到的锁为内部所,或叫监视器锁。 synchronized 内存语义 进入 synchronized块,即是当前线程会从自己的工作内存中清除 阅读全文
posted @ 2021-10-28 19:51 Dozeer 阅读(59) 评论(0) 推荐(0) 编辑
摘要: ThreadLocal 并发下,多线程对共享变量进行操作,为保证线程安全,通常要控制好各线程的同步情况,最直接的办法是给当前共享变量加锁。 有没有一种方法使得创建一个变量后,每个线程对该变量的访问都是在自己的线程空间中的呢?这就是 ThreadLocal。 测试示例 public static vo 阅读全文
posted @ 2021-10-26 20:41 Dozeer 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 实现方式 实现 Runable 接口的run方法 public static class RunnableTask implements Runnable { // 注意此处返回类型是void,Runnable接口没有返回值 @Override public void run(){ // do so 阅读全文
posted @ 2021-10-26 16:57 Dozeer 阅读(82) 评论(0) 推荐(0) 编辑
摘要: Spring AOP 依靠 JDK 和 CGLib 进行动态代理实现。在此对两种实现方式的一些知识进行整理。 JDK 使用示例 /** * 需要被代理的接口 */ interface Iinterface { String proxyMethod(String gift); } /** * 实现 I 阅读全文
posted @ 2021-10-26 14:50 Dozeer 阅读(185) 评论(0) 推荐(0) 编辑
摘要: Mysql重要函数介绍 ascii(char) : ​ char:返回返回对应的ascii码的字符 substr(str,position,length) : ​ str:主字符串 ​ position:指定从第几个字符串开始 ​ length:需要获取的长度 length(str) :返回str的 阅读全文
posted @ 2019-07-31 20:24 Dozeer 阅读(447) 评论(0) 推荐(0) 编辑
Live2D