240 发简信
IP属地:福建
  • AttributeSource 这个骚操作很6啊!一直不明白Lucene为啥要这样设计,直到最近想在Java做类似动态语言那种功能,才发现这个设计的妙用。

    Lucene介绍、分词详解

    Lucene介绍 1、Lucene简介 最受欢迎的java开源全文搜索引擎开发工具包。提供了完整的查询引擎和索引引擎,部分文本分词引擎(英文与德文两种西方语言)。Lucene...

  • 120
    彻底理解Netty,这一篇文章就够了

    Netty到底是什么 从HTTP说起 有了Netty,你可以实现自己的HTTP服务器,FTP服务器,UDP服务器,RPC服务器,WebSocket服务器,Redis的Prox...

  • 工作七周年纪

    突然发现,下周的7月2日就是我工作七周年的日子了。再过两个月,我的孩子就要出世。九月在我的心里是一个很浓重的锚定,竟忘了时光飞逝,已如此逼近了。 李笑来说,七年就是一辈子。毕...

  • > 如果在访问该servlet的同时打开了jconsole观察堆内存会发现内存会飙升,究其原因是因为工作线程调用servlet的doGet方法时候,工作线程的threadLocals变量里面被添加了new LocalVariable()实例,但是没有被remove,另外多次访问该servlet可能用的不是工作线程池里面的同一个线程,这会导致工作线程池里面多个线程都会存在内存泄露。

    不觉得这里有什么问题。既然Servlet的处理线程就那么多,新的请求会重新创建LocalVariable,自然会让ThreadLocal原来的值失效,继而被GC。因此内存不会一直增长。
    调用了remove又有什么用呢?只会让内存在该线程没有请求的时候降下来,而现实中工作线程显然是一直处理源源不断的请求,remove()就是多此一举。

    使用ThreadLocal不当可能会导致内存泄露

    8.2 使用ThreadLocal不当可能会导致内存泄露 基础篇已经讲解了ThreadLocal的原理,本节着重来讲解下使用ThreadLocal会导致内存泄露的原因,并讲解...

  • [怀旧并发11]分析jdk-1.8-ForkJoinPool实现原理(下)

    Java并发编程源码分析系列: 分析Java线程池的创建[https://www.jianshu.com/p/adbf37ef77bb] 分析Java线程池执行原理[http...

  • 不知不觉,再看这篇文章,又是一年过去了……
    此文是我在极度焦虑和苦闷的境况下写的,行文水平还需提高,再看一遍,有几处不通顺的地方。
    这一年里,我后来又读了吴军的《见识》,真后悔没有早点看到这本书。不过这书也是刚出版。总之,生活依旧艰难,但苦乐参半,也有成就。已经接受“大的成功需要几代人的积累”这个道理。
    继续修炼自己吧,少浪费时间,尽早掌握更多世界的真相,才能过好此生。
    加油!

    勿作悻悻然状

    Sea Fog 人的快乐往往建立在比较,而非绝对的得失之上,也许这真的是人类的本性。有一则笑话,员工问老板:如果你无法给我升职加薪的话,可否给那个谁降点工资呢? 见不得别人比...

  • 120
    Java8 Stream的总结

    一. Stream的特性 Stream是Java 8新增的接口,Stream可以认为是一个高级版本的 Iterator。它代表着数据流,流中的数据元素的数量可以是有限的,也可...

  • 120
    debug了很久,发现了Hystrix的两个bug

    最近基于Hystrix源码添加一些花边功能,比如数据埋点、参数动态配置等,交付给业务之后,经过一系列的压测之后,发现了各种问题。 1、埋点数据有问题2、熔断一直不恢复 先来看...

  • 120
    对ThreadLocal实现原理的一点思考

    前言 在《透彻理解Spring事务设计思想之手写实现》中,已经向大家揭示了Spring就是利用ThreadLocal来实现一个线程中的Connection是同一个,从而保证了...