8.8 ThreadLocal

2018-01-09  本文已影响0人  jadefly

简介

概念:1.使用ThreadLocal维护变量会为每个使用该变量的线程提供独立的变量副本,每个线程独立改变副本不会影响其它线程的副本;

           2.ThreadLocal为解决多线程程序的并发问题提供了一种新的思路,简洁优美;


方法

void set(T value):设置当前线程的线程局部变量的值;

T get():该方法返回当前线程所对应的线程局部变量;

void remove():将当前线程局部变量的值删除,目的是为了减少内存的占用;

                                  (线程结束gc会自动回收,显式调可以加快内存回收)

T initialValue():返回该线程局部变量的初始值;(缺省值为null,一般使用匿名内部类)


ThreadLocal与线程同步机制

都是为了解决多线程中相同变量的访问冲突问题。

线程同步机制:1.通过对象的锁机制保证同一时间只有一个线程访问变量;(变量是多个线程共享的,通过加锁、释放锁)

                         2.仅提供一份变量,让不同的线程排队访问;

                         3.锁机制牺牲时间换空间;

ThreadLocal:1.为每一个线程提供一个独立的变量副本,从而隔离了多个线程对数据的访问冲突;

                        2.为每一个线程都提供了一份变量,因此可以同时访问而互不影响;

                        3.存储拷贝牺牲空间换时间;


上一篇下一篇

猜你喜欢

热点阅读