摘要:
前言 每年到年终的时候,都会写个总结。今天是2018年最后的一天了,过了今天不仅仅代表自己又长了一岁,也代表着自己又更加成熟了。回收2018,我到底做了什么?收获了什么? 路该怎样走 程序员生涯,一路艰辛 一路风景,既然选择了,就要坚持下去。过去的一年,时长想着一个问题,该到底如何才不会被淘汰?到了 阅读全文
摘要:
更好的markDown阅读体验可直接访问我的CSDN博客: "https://blog.csdn.net/u012881584/article/details/85221635" 前言 线程池想必大家也都用过,JDK的 也自带一些线程池。但是不知道大家有没有想过,如何才是最优雅的方式去使用过线程池吗 阅读全文
摘要:
前言 最近一直在看JUC下面的一些东西,发现很多东西都是以前用过,但是真是到原理层面自己还是很欠缺。 刚好趁这段时间不太忙,回来了便一点点学习总结。 前言 最近一直在看JUC下面的一些东西,发现很多东西都是以前用过,但是真是到原理层面自己还是很欠缺。 刚好趁这段时间不太忙,回来了便一点点学习总结。 阅读全文
摘要:
备注:博客园的markDown格式支持的特别不友好。也欢迎查看我的csdn的此篇文章链接: "CountDownLatch、CyclicBarrier和Semaphore 使用示例及原理" CountDownLatch CountDownLatch用户监听某些初始化操作,并且线程进行阻塞,等初始化执 阅读全文
摘要:
申明:此篇文章转载自:https://juejin.im/post/5c11d6376fb9a049e82b6253写的真的很棒,感谢老钱的分享。 打通 Java 任督二脉 —— 并发数据结构的基石 每一个 Java 的高级程序员在体验过多线程程序开发之后,都需要问自己一个问题,Java 内置的锁是 阅读全文
摘要:
申明:转载自 https://www.cnblogs.com/dennyzhangdd/p/8981982.html感谢原博主的分享,看到这个写的真好,直接转载来,学习了。另外也推荐另外一篇GuavaCache的文章:https://ketao1989.github.io/2014/12/19/Guava-Cache-Guide-And-Implement-Analyse/#top正文回到顶部一、... 阅读全文
摘要:
前言 之前线上有过一两次OOM的问题,但是每次定位问题都有点手足无措的感觉,刚好利用星期天,以测试环境为模版来学习一下Linux常用的几个排查问题的命令。 也可以帮助自己在以后的工作中快速的排查线上问题。 jmap命令 jmap -heap pid 输出当前进程 JVM 堆新生代、老年代、持久代等请 阅读全文
摘要:
前言 上一篇已经讲了,如何自己实现一个LRU算法。但是那种只是最基本的实现了LRU的剔除策略,并不能在生产中去使用。因为Guava Cache中使用的是SoftReference去做的value实现,所以有必要将Java的四种引用类型在复习一下。 备注:以下代码使用的JVM配置为: -Xmx128M -Xms64M -XX:+PrintGCDetails Java的四种引用 强引用(St... 阅读全文
摘要:
前言 今天在看GuavaCache缓存相关的源码,这里想到先自己手动实现一个LRU算法。于是乎便想到LinkedHashMap和LinkedList+HashMap, 这里仅仅是作为简单的复习一下。 LRU LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。 代码实现原理... 阅读全文
摘要:
前言 以前一直听说有Disruptor这个东西,都说性能很强大,所以这几天自己也看了一下。 下面是自己的学习笔记,另外推荐几篇自己看到写的比较好的博客: Disruptor——一种可替代有界队列完成并发线程间数据交换的高性能解决方案 <!--more--> Disruptor3.0的实现细节 DIs 阅读全文