节选jdk源码中比较重要的方法进行分析,如下:public class ThreadLocal<T> { private final int threadLocalHashCode = nextHashCode(); private static AtomicInteger nextHashCode = new AtomicInteger(); priva
  • arick
  • 2020-06-09 02:35:00
本文讲述睿客网的技术架构,相关技术及实现细节。技术选型:前端包括angular7+ssr+Nodejs,后端包括:Nginx、springboot2.0.4、jpa、mysql
  • admin
  • 2019-06-19 18:33:09
Java不可重入锁和可重入锁理解最近正在阅读Java ReentrantLock源码,始终对可重入和不可重入概念理解不透彻,进行学习后记录在这里。基础知识Java多线程的wait()方法和notify()方法这两个方法是成对出现和使用的,要执行这两个方法,有一个前提就是,当前线程必须获其对象的monitor(俗称“锁”),否则会抛出IllegalMonitorStateException异常,所以
  • arick
  • 2019-09-24 22:08:31
1.什么事缓存存储在计算机上的一个原始数据复制集,便于快速访问,提高系统响应效率。2.redis是一个kay-value形式的NoSql缓存存储系统3. 缓存更新策略LRU/LFU/FIFO算法剔除:处理到达阀值后的缓存数据剔除超时剔除方式: 设置数据有效期,到期后缓存数据自动删除,例如redis提供的expire命令,通常使用在业务允许一段时间内缓存数据与DB数据不一致的情况下,可以为其设置过期
  • arick
  • 2020-04-05 20:51:56
每个 ChannelSocket 的 Unsafe 都有一个绑定的 ChannelOutboundBuffer , Netty 向站外输出数据的过程统一通过 ChannelOutboundBuffer 类进行封装,目的是为了提高网络的吞吐量,在外面调用 write 的时候,数据并没有写到 Socket,而是写到了 ChannelOutboundBuffer 这里,当调用 flush 的时候,才真正
  • arick
  • 2020-08-12 00:01:12
1【理解】1 请求第20页,假设你有16个分片,则需要在coordinate node 汇总到 shards* (from+size)条记录,即需要 16*(20+10)记录后做一次全局排序,再最终取出 from后的size条结果作为最终的响应。2 当索引非常非常大(千万或亿),是无法安装 from + size 做深分页的,分页越深则越容易OOM,即便不OOM,也是很消耗CPU和内存资源的。CP
  • arick
  • 2020-04-21 13:48:42
Tomcat线程池的优化1. 简介Tomcat继承并重写了JAVA原生的java.util.concurrent.ThreadPoolExecutor,增加了一些更有效率的方法,并且定义了默认拒绝策略。2. 原理分析2.1 实例化与阿里巴巴JAVA规范中定义的线程池创建规范类似,Tomcat实例化线程池时,同样限制了任务队列的长度,maxQueueSize默认为Integer.MAX_VALUE,
  • arick
  • 2019-11-16 23:42:00
摘要: 本文所讨论的计算资源是指用来执行 Task 的资源,是一个逻辑概念。本文会介绍 Flink 计算资源相关的一些核心概念,如:Slot、SlotSharingGroup、CoLocationGroup、Chain等。并会着重讨论 Flink 如何对计算资源进行管理和隔离,如何将计算资源利用率最大化等等。理解 Flink 中的计算资源对于理解 Job 如何在集群中运行的有很大的帮助,也有利于我
  • arick
  • 2019-09-24 22:16:21
一、Hive 基本面试1、什么是 metastore2、metastore 安装方式有什么区别3、什么是 Managed Table 跟 External Table?4、什么时候使用 Managed Table 跟 External Table?5、hive 有哪些复合数据类型?6、hive 分区有什么好处?7、hive 分区跟分桶的区别8、hive 如何动态分区9、map join 优化手段1
  • admin
  • 2019-06-25 21:53:56
如果某一个资源被多个线程共享,为了避免因为资源抢占导致资源数据错乱,我们需要对线程进行同步,那么synchronized就是实现线程同步的关键字,可以说在并发控制中是必不可少的部分,今天就来看一下synchronized的使用和底层原理。一、synchronized的特性1.1 原子性所谓原子性就是指一个操作或者多个操作,要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。在Java中,
  • arick
  • 2020-06-03 02:50:26
Rick ©2018