java中ThreadLocal对象存储和获取的示例分析

  介绍

这篇文章主要介绍了java中ThreadLocal对象存储和获取的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

java的特点有哪些

java的特点有哪些   1. java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。   2. java具有简单性,面向对象,分布式、安全性,平台独立与可移植性,动态性等特点。   3。使用Java可以编写桌面应用程序,网络应用程序,分布式系统和嵌入式系统应用程序等。

对象的保存问题,一直是我们在做程序研究时所关心的。在ThreadLocal中也有着同样的操作,我们可以将对象进行存储和获取。这需要对ThreadLocal的知识有一定的了解,而且用到了其中设置的方法。

<强> 1,ThreadLocal的设置方法

<>之前,,,,public  void 设置(T 价值),{   ,,,,,,,Thread  t =, Thread.currentThread ();   ,,,,,,,ThreadLocalMap  map =, getMap (t);   ,,,,,,,if  (map  !=, null)   ,,,,,,,,,,,map.set(,,值);   ,,,,,,,   ,,,,,,,,,,,createMap (t),价值);   ,,,}

通过ThreadLocal的设置方法看出,ThreadLocalMap的& lt; k, v>结构中,关键的存储的是ThreadLocal本身,而价值则是实际存储的值,也就是说,在ThreadLocalMap里存储了当前ThreadLocal所复制的变量副本。

<强> 2,ThreadLocal本身不存储值,在使用中,ThreadLocal是作为一个键,从ThreadLocalMap获取值,从ThreadLocal的得到方法中也可以看出来:

<>之前,,,,public  T 得到(),{   ,,,,,,,Thread  t =, Thread.currentThread ();   ,,,,,,,ThreadLocalMap  map =, getMap (t);   ,,,,,,,if  (map  !=, null), {   ,,,,,,,,,,,ThreadLocalMap.Entry  e =, map.getEntry(这个);   ,,,,,,,,,,,if  (e  !=, null), {   ,,,,,,,,,,,,,,,@SuppressWarnings (“unchecked")   ,,,,,,,,,,,,,,,T  result =, (T) e.value;   ,,,,,,,,,,,,,,,return 结果;   ,,,,,,,,,,,}   ,,,,,,,}   ,,,,,,,return  setInitialValue ();   }

感谢你能够认真阅读完这篇文章,希望小编分享的“java中ThreadLocal对象存储和获取的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

java中ThreadLocal对象存储和获取的示例分析