corePoolSize:核心池的大小,这个参数跟后面讲述的线程池的实现原理有非常大的关系。在创建了线程池后,默认情况下,线程池中并没有任何线程,而是等待有任务到来才创建线程去执行任务,除非调用了prestartAllCoreThreads()或者prestartCoreThread()方法,从这2个方法的名字就可以看出,是预创建线程的意思,即在没有任务到来之前就创建corePoolSize个线程
  • arick
  • 2020-03-26 17:41:58
CMS:以获取最短回收停顿时间为目标的收集器,基于并发“标记清理”实现过程:1、初始标记:独占PUC,仅标记GCroots能直接关联的对象2、并发标记:可以和用户线程并行执行,标记所有可达对象3、重新标记:独占CPU(STW),对并发标记阶段用户线程运行产生的垃圾对象进行标记修正4、并发清理:可以和用户线程并行执行,清理垃圾优点:并发,低停顿缺点:1、对CPU非常敏感:在并发阶段虽然不会导致用户线
  • admin
  • 2019-06-24 23:22:56
man strace:    strace - trace system calls and signalsDESCRIPTIONIn the simplest case strace runs the specified command until it exits. It intercepts and records the system calls which are called by a
  • arick
  • 2021-05-31 18:44:12
为何使用MQ• 异步通信(调用解耦、故障隔离)• 流量的削峰(防止流量压垮)• 消息的持久化(可重试,可重复消费)基本概念Broker:即Kafka服务部署的一个节点,多个broker节点可以构成一个Kafka集群。消息:消息是Kafka中最基本的消息单元。由一串字节组成,主要由key和value构成,key和value都是字节数组。key的主要作用是根据一定的策略,将这个消息路由到指定的分区中,
  • arick
  • 2020-05-17 23:39:39
同样,HashMap是java面试中经常问到的一个知识点,基本都是和HashTable以及ConcurrentHashMap一起被问及,今天主要是讲讲HashMap是如何解决碰撞问题的?那么问题来了,什么是碰撞问题?这要先从HashMap底层的实现说起,进入它的源码类public class HashMap<K,V> extends AbstractMap<K,V> implements
  • arick
  • 2020-04-21 13:54:10
2015 年 HTTP/2 标准发表后,大多数主流浏览器也于当年年底支持该标准。此后,凭借着多路复用、头部压缩、服务器推送等优势,HTTP/2 得到了越来越多开发者的青睐。不知不觉的 HTTP 已经发展到了第三代,很多项目也在逐渐使用 HTTP/3。本文基于兴趣部落接入 HTTP/3 的实践,聊一聊 HTTP/3 的原理以及业务接入的方式。1. HTTP/3 原理1.1 HTTP 历史在介绍 HT
  • arick
  • 2021-07-11 19:21:13
如果想了解 redis 与Memcache的区别参考:Redis和Memcache的区别总结阿里的面试官问问我为何redis 使用跳表做索引,却不是用B+树做索引因为B+树的原理是 叶子节点存储数据,非叶子节点存储索引,B+树的每个节点可以存储多个关键字,它将节点大小设置为磁盘页的大小,充分利用了磁盘预读的功能。每次读取磁盘页时就会读取一整个节点,每个叶子节点还有指向前后节点的指针,为的是最大限度
  • arick
  • 2020-05-14 14:28:31
开源展示了人类共同协作,成果分享的魅力,每一次技术发展都是站在巨人的肩膀上,技术诸多创新和发展往往就是基于开源发展起来的,没有任何一家网络公司可以不使用开源技术,仅靠自身技术而发展起来。阿里巴巴各个团队都是发自内心地将踩过的坑和总结的经验融入到开源项目中,供业界所有人使用,希望帮助他人解决问题。云栖社区特在2018年年末,将阿里巴巴的一些重要的开源项目进行整理,希望对大家有所帮助。(以下项目排名不
  • arick
  • 2020-05-03 00:14:57
本文讲述睿客网的技术架构,相关技术及实现细节。技术选型:前端包括angular7+ssr+Nodejs,后端包括:Nginx、springboot2.0.4、jpa、mysql
  • admin
  • 2019-06-19 18:33:09
Redis服务端对于命令的处理是单线程的,但是在I/O层面却可以同时面对多个客户端并发的提供服务,并发到内部单线程的转化通过多路复用框架实现一个IO操作的完整流程是数据请求先从用户态到内核态,也就是操作系统层面,然后再调用操作系统提供的API,调用相应的设备去获取相应的数据。当相应的设备准备好数据后,会将数据复制到内核态。数据从相应的设备到内核态的处理方式分为:阻塞和非阻塞。  阻塞:用户请求会等
  • arick
  • 2020-04-05 20:47:27
京ICP备19006603号-1 Rick ©2018