treadlocal定义,使用,基本原理以及注意点
代办:未完整
定义
Threadlocal提供了线程本地的变量,这些变量绑定于自己的线程,独立的进行初始化。使用上通常是private static 变量,并且关联一个有状态的变量,如user ID 或Transaction ID.
通常是保存 线程中的状态的变量
使用
1 | public class ThreadId { |
只要这个线程活着,并且threadllocal实例可用,那么每一个线程保持一个引用与threadlocal中变量的拷贝,
ThreadLocal()
无参构造器
withInitial(Supplier<? extends S>):ThreadLocal
1 | public static <S> ThreadLocal<S> withInitial(Supplier<? extends S> supplier) { |
get():T
1 | public T get() { |
set(T):void
1 | public void set(T value) { |
remove():void
1 | public void remove() { |
原理分析
ThreadLocalMap
每个线程都有一个threadlocalmap成员变量
threalLocalMap底层是一个散列表(数组链表)
tail -f /opt/web/dianshangwuxian_order-server/logs/catalina.log.2018-09-12
tail -f /opt/web/dianshangwuxian_order-server/logs/order-server.log