java
stevewongbuaa
这个作者很懒,什么都没留下…
展开
-
Java各种lock:原理:直到最底层
视频 https://www.bilibili.com/video/BV1XJ411N7n8?from=search&seid=5909050874888845802 cdsn blog https://blog.csdn.net/java_lyvee/article/details/98966684 synchronized 早期sdk就有 重量级的锁,会去调用操作系统相关函数 后面的升级版本尽量留在jvm而不是操作系统 自旋锁 单纯自旋: CAS CompareAn原创 2020-12-07 10:57:11 · 190 阅读 · 0 评论 -
Guava RateLimiter 原理 理解
背景项目中限流可以用Guava RateLimiter,不想了解原理是啥吗?!这篇文章已经写的很好了没啥可补充了,加一些个人思考吧思考如果让你来造一个限流器,有啥想法?直观想法1,对应参考文章的漏桶算法就是用一个固定大小的队列。比如设置限流为5qps,1s可以接受5个请求;那我们就造一个大小为5的队列,如果队列为满了,就拒绝请求;如果队列未满,就往队列添加请求。如何控制速率呢,我们通过控制消费者的消费速率是5qps,1s消费5个即可。问题,说的挺轻巧,具体怎么控制消费者的速率呢?又加一个定原创 2020-06-15 17:35:19 · 650 阅读 · 0 评论 -
mybatis uuid主键 auto_increment列 回显id keyGenerator
背景使用tk.mybatis,原来线上用的uuid主键,业务需求新增一个自增的索引列之后,调用insert插入方法,会将传入的对象的id回显;期望的是回显主键uuid,但是实际上回显的是自增id参考作者的文档https://github.com/mybatis-book/book/issues/45单步调试从insert开始一步一步地往里走应该就是这个后置处理的时候会回写id回头看发现是这里产生的generatedkey是可以找到修改的地方了,但是我们没法插手使得他不修改。。.原创 2020-05-28 15:08:49 · 546 阅读 · 0 评论 -
disruptor 原理 核心思想
disruptor参考 极客时间 https://time.geekbang.org/column/article/79871 https://time.geekbang.org/column/article/134020 特点 闪电 it's fast. very fast 600wTPS 异步处理 线程间通信 高吞吐,低延迟 有界内存队列,环形...原创 2020-04-23 15:18:38 · 230 阅读 · 0 评论 -
理解G1 Remember Set(RSet)
OverviewG1的每个region都有一个Remember Set(Rset)这个数据结构,用来保存别的region的对象对我这个region的对象的引用,通过Remember Set我们可以找到哪些对象引用了当前region的对象参考这个文章由于对我当前region对象的引用可能很多,也可能很少,G1会根据数量的变化来改变数据结构以达到节省空间的目的第1种,哈希表key是regi...原创 2020-04-23 08:22:25 · 3960 阅读 · 0 评论 -
内存泄露 排查 多线程 hashmap
线上一个模块内存泄露了。通过一系列命令查看,有以下特征: 并发时才会复现 老年代居高不下 CPU占用一直往上飙升 复现办法 code @Testpublic void testStream() { Long size = 1000000l; Map<String, String> map = new HashMap<>(); List<Strin...原创 2020-04-22 14:17:23 · 773 阅读 · 0 评论 -
G1-GarbageFirst-Oracle文档 翻译 笔记
官方文档链接:https://www.oracle.com/technetwork/tutorials/tutorials-1876574.html 简介 可以设定一个期望的暂停时间,G1会努力达到这个暂停时间。 是用来长期取代CMS(Concurrent Mark-Swap Collector)的。 比CMS好的地方: 是一个压缩的垃圾回收器,减少碎片 比起CMS,提供了可...翻译 2020-04-15 18:28:09 · 379 阅读 · 0 评论 -
Java ReentrantLock 原理 源码 多线程 模拟加锁解锁过程
前言咱们下面都是公平锁相关的内容参考视频:https://www.bilibili.com/video/BV1XJ411N7n8?p=1基本原理首先大概要知道总体原理:多个线程去抢一个status状态,抢到的线程就获取成功,抢不到线程的会把自己当前线程放在一个队列里排队。抢到锁的线程unlock的时候会把排在队头的线程唤醒,然后队头的线程再去尝试获得锁。大概的伪...原创 2020-04-10 18:26:27 · 275 阅读 · 0 评论 -
设计模式-观察者模式
参考这就是观察者模式观察者模式Java设计模式之观察者模式《JAVA与模式》之观察者模式小结转载 2016-09-01 21:37:41 · 552 阅读 · 0 评论 -
java 入门
参考易百官网安装教程转载 2016-09-01 11:48:55 · 276 阅读 · 0 评论