摘要:
JAVA 双亲委派与类加载器 双亲委派 虚拟机在加载类的过程中需要使用类加载器进行加载,而在Java中,类加载器有很多,那么当JVM想要加载一个.class文件的时候,到底应该由哪个类加载器加载呢? 这就不得不提到”双亲委派机制”。 首先,我们需要知道的是,Java语言系统中支持以下4种类加载器: 阅读全文
摘要:
【转载】 基于Zookeeper的分布式锁与领导选举 原创文章,转载请务必将下面这段话置于文章开头处。 本文转发自技术世界,原文链接 http://www.jasongj.com/zookeeper/distributedlock/ Zookeeper特点 Zookeeper节点类型 如上文《Zoo 阅读全文
摘要:
【转载】Zookeeper架构及FastLeaderElection机制 本文介绍了Zookeeper的架构,并组合实例分析了原子广播(ZAB)协议的原理,包括但不限于Zookeeper的读写流程,FastLeaderElection算法的原理,ZAB如何保证Leader Failover过程中的数 阅读全文
摘要:
秒杀商品设计 前端限制 前端控制,不能重复点击 精简sql 典型的一个场景是在进行扣减库存的时候,传统的做法是先查询库存,再去update。 这样的话需要两个sql,而实际上一个sql我们就可以完成的。 可以用这样的做法: update miaosha_goods set stock =stock- 阅读全文
摘要:
JAVA线程池 submit方法返回值 AbstractExecutorService public abstract class AbstractExecutorService implements ExecutorService { // RunnableFuture 是用于获取执行结果的,我们 阅读全文
摘要:
JAVA线程-interrupt 中断一个线程非常简单,只需要在其他线程中对目标线程调用interrupt()方法,目标线程需要反复检测自身状态是否是interrupted状态,如果是,就立刻结束运行。 案例一: public class Main { public static void main 阅读全文
摘要:
一些心理学小技巧 人们倾向于记住最先发生的事情和最后发生的事情, 中途发生的事情会被后来者覆盖. 所以, 如果要做自我介绍的话, 最好做第一个或者最后一个, 面试的时候也是一样的. 报价之后, 不再说话. 无论是销售还是其他领域, 这项技巧都很有用. 情景再现: 与顾客寒暄完毕, 报出价格后, 从此 阅读全文
摘要:
Elasticsearch 问题收集 Mac端安装 安装elasticsearch 安装elasticsearch ❯ brew install elasticsearch Running `brew update --auto-update`... ==> Auto-updated Homebre 阅读全文
摘要:
JAVA并发-Thread.sleep(0)深入理解 Thread.Sleep(0)的作用,就是“触发操作系统立刻重新进行一次CPU竞争”。 通过调用 Thread.sleep(0) 的目的是为了让 GC 线程有机会被操作系统选中,从而进行垃圾清理的工作。它的副作用是,可能会更频繁地运行 GC,毕竟 阅读全文
摘要:
【转载】硬核干货:5W字17张高清图理解同步器框架AbstractQueuedSynchronizer 前提 并发编程大师Doug Lea在编写JUC(java.util.concurrent)包的时候引入了java.util.concurrent.locks.AbstractQueuedSynch 阅读全文
摘要:
【转载】ThreadLocal源码分析-黄金分割数的使用 前提 最近接触到的一个项目要兼容新老系统,最终采用了ThreadLocal(实际上用的是InheritableThreadLocal)用于在子线程获取父线程中共享的变量。问题是解决了,但是后来发现对ThreadLocal的理解不够深入,于是顺 阅读全文
摘要:
反转链表 import java.util.Arrays; import java.util.List; import org.springframework.util.CollectionUtils; import com.google.common.collect.Lists; import l 阅读全文
摘要:
【转载】通过transmittable-thread-local源码理解线程池线程本地变量传递的原理 前提 最近一两个月花了很大的功夫做UCloud服务和中间件迁移到阿里云的工作,没什么空闲时间撸文。想起很早之前写过ThreadLocal的源码分析相关文章,里面提到了ThreadLocal存在一个不 阅读全文
摘要:
【转载】硬核干货:4W字从源码上分析JUC线程池ThreadPoolExecutor的实现原理 前提 很早之前就打算看一次JUC线程池ThreadPoolExecutor的源码实现,由于近段时间比较忙,一直没有时间整理出源码分析的文章。之前在分析扩展线程池实现可回调的Future时候曾经提到并发大师 阅读全文
摘要:
JAVA并发-Disruptor框架 Disruptor简介 最好的方法去理解Disruptor就是将它和容易理解并且相似的队列,例如BlockingQueue。Disruptor其实就像一个队列一样,用于在不同的线程之间迁移数据,但是Disruptor也实现了一些其他队列没有的特性,如: 同一个“ 阅读全文