TerminatingThreadLocal

这几天开始准备准备充实一下自己.看threalocal的时候.

发现除了InheritableThreadLocal这个用来在父子线程之间传递变量的子类之外

还有一个对外开放的子类就是TerminatingThreadLocal.

这个玩意我看了一下jdk里自己的使用发现是在NativeBuffers里有这段.

private static ThreadLocalthreadLocal =new TerminatingThreadLocal() {

protected void threadTerminated(NativeBuffer[] buffers) {

if (buffers !=null) {

for(int i =0; i <3; ++i) {

NativeBuffer buffer = buffers[i];

                if (buffer !=null) {

buffer.free();

                    buffers[i] =null;

                }

}

}

}

};

结合TerminatingThreadLocal 这个类的注释说明.发现这个东西就是一个线程退出时候的回调.就是说一个线程终止了.你希望在终止的时候干些事情

就用这个变量可以做到.

触发条件就在Thread的exit方法里


以个人浅薄的认识啊.除了这种操作堆外内存的场景需要自己去处理内存以外.剩下的反正也就等jvm gc的时候它就会自己回收掉了把...

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、前言 对于应用中的内存优化,和布局优化类似,也有很多的技巧,这里我们分为以下几方面来总结: Java优化技巧 ...
    泽毛阅读 2,923评论 6 24
  • 什么是ByteBuf Netty提供了强大的随机和顺序访问零字节或多个字节的序列,为一个或多个原始的字节数组和JD...
    0爱上1阅读 4,565评论 0 1
  • 转载请注明出处(https://www.jianshu.com/p/5f538820e370),您的打赏是小编继续...
    福later阅读 28,376评论 8 73
  • 基础 数据结构与算法基础 说一下几种常见的排序算法和分别的复杂度。 冒泡排序 具体的原理就是未排好,自上而下的比...
    广告被屏蔽阅读 451评论 0 0
  • 八种基本数据类型的大小,以及他们的封装类 八种基本数据类型:int、short、float、double、long...
    广告被屏蔽阅读 198评论 0 0