java中ThreadLocal对象存储和获取的示例分析
这篇文章主要介绍了java中ThreadLocal对象存储和获取的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
Java的特点有哪些
Java的特点有哪些 1.Java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。 2.Java具有简单性、面向对象、分布式、安全性、平*立与可移植性、动态性等特点。 3.使用Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
对象的保存问题,一直是我们在做程序研究时所关心的。在ThreadLocal中也有着同样的操作,我们可以将对象进行存储和获取。这需要对ThreadLocal的知识有一定的了解,而且用到了其中的set方法。
1、ThreadLocal的set方法
public void set(T value) { Thread t = Thread.currentThread(); ThreadLocalMap map = getMap(t); if (map != null) map.set(this, value); else createMap(t, value); }
通过ThreadLocal的set方法看出,ThreadLocalMap的<k,v>结构中,key存储的是ThreadLocal本身,而value则是实际存储的值,也就是说,在ThreadLocalMap里存储了当前ThreadLocal所复制的变量副本。
2、ThreadLocal本身不存储值,在使用中,ThreadLocal是作为一个key,从ThreadLocalMap获取值,从ThreadLocal的get方法中也可以看出来:
public T get() { Thread t = Thread.currentThread(); ThreadLocalMap map = getMap(t); if (map != null) { ThreadLocalMap.Entry e = map.getEntry(this); if (e != null) { @SuppressWarnings("unchecked") T result = (T)e.value; return result; } } return setInitialValue(); }
感谢你能够认真阅读完这篇文章,希望小编分享的“java中ThreadLocal对象存储和获取的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注行业资讯频道,更多相关知识等着你来学习!