专栏首页InvQ的专栏Netty 的 FastThreadLocal VS JAVA ThreadLocal

Netty 的 FastThreadLocal VS JAVA ThreadLocal

我们都有在源码中发现 FastThreadLocal 的身影,顾名思义,Netty 作为高性能的网络通信框架,FastThreadLocal 是比 JDK 自身的 ThreadLocal 性能更高的通信框架。FastThreadLocal 到底比 ThreadLocal 快在哪里呢?

说明:本文参考的 Netty 源码版本为 4.1.42.Final。

文章目录

JDK ThreadLocal 基本原理

JDK ThreadLocal 不仅是高频的面试知识点,而且在日常工作中也是常用一种工具,所以首先我们先学习下 Java 原生的 ThreadLocal 的实现原理,可以帮助我们更好地对比和理解 Netty 的 FastThreadLocal。

如果你需要变量在多线程之间隔离,或者在同线程内的类和方法中共享,那么 ThreadLocal 大显身手的时候就到了。ThreadLocal 可以理解为线程本地变量,它是 Java 并发编程中非常重要的一个类。ThreadLocal 为变量在每个线程中都创建了一个副本,该副本只能被当前线程访问,多线程之间是隔离的,变量不能在多线程之间共享。这样每个线程修改变量副本时,

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • synchronized的 偏向锁、轻量级锁、重量级锁的优缺点对比以及其适应场景

    MickyInvQ
  • 万能的Throwable

    线上可能会因为一些线程Error级别的错误,而又不失main线程触发的(main线程遇到error,会打印出堆栈信息)。 这时候,无法获取报错原因,甚是麻烦。

    MickyInvQ
  • 线程的调度方式——抢占式、非抢占式

    在抢占模式下,操作系统负责分配CPU时间给各个进程,一旦当前的进程使用完分配给自己的CPU时间,操作系统将决定下一个占用CPU时间的是哪一个线程。因此操作系统...

    MickyInvQ
  • threadLocal 记录

    翻译成中文应该叫做线程局部变量。这个类到底有什么用处呢?在并发编程的时候,成员变量如果不做任何处理其实是线程不安全的,各个线程都在操作同一个变量,显然是不行的,...

    砍鸡鸡
  • ThreadLocal

    一、定义   翻译成中文应该叫做线程局部变量。这个类到底有什么用处呢?在并发编程的时候,成员变量如果不做任何处理其实是线程不安全的,各个线程都在操作同一个变量,...

    用户1195962
  • 探究ThreadLocal原理(基于JAVA8源码分析)线程封闭ThreadLocal是什么ThreadLoalMaphash冲突内存泄露避免内存泄露题外小话ThreadLocal的应用场合

    JavaEdge
  • 线程池-Threadlocal

    ThreadLoclc初衷是线程并发时,解决变量共享问题,但是由于过度设计,比如弱引用的和哈希碰撞,导致理解难度大、使用成本高,反而成为故障高发点,容易出现内存...

    DougWang
  • 对ThreadLocal实现原理的一点思考前言ThreadLocal是什么、有什么、能做什么?看一看ThreadLocal源码

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

    用户2890438
  • Android 中 ThreadLocal使用示例

    Implements a thread-local storage, that is, a variable for which each thread ha...

    砸漏
  • 线程池ThreadPoolExecutor整理

      java.uitl.concurrent.ThreadPoolExecutor类是线程池中最核心的一个类

    江湖前辈黄药师

扫码关注云+社区

领取腾讯云代金券