zoukankan      html  css  js  c++  java
  • Java线程静态在对象缓存中的妙用

         线程静态在对象缓存中的妙用由广州疯狂软件教育java培训分享:

      线程静态标记静态字段的值对于每个线程都是唯一的。简单来说,是只应用在静态字段上,而且对于每一个线程都是独立存储的。

      那么,结合对象缓存来说,需求如下:

      1、一些工具类,需要占用一定资源,但又不希望太频繁的创建该工具类。

      2、需要适应多线程的情况

      一个例子就是StringBuilder类,StringBuilder类内部实现使用了char[]来存储字符,我们需要使用StringBuilder来创建字符串,而且希望不太频繁的创建它,避免内存压力。

      下面,就是。NET Framework 4.5.1 中对StringBuilderCache的实现:

      internal static class StringBuilderCache{

      private const int MAX_BUILDER_SIZE = 360;

      [ThreadStatic]

      private static StringBuilder CachedInstance;

      public static StringBuilder Acquire(int capacity = StringBuilder.DefaultCapacity){

      if(capacity <= MAX_BUILDER_SIZE){

      StringBuilder sb = StringBuilderCache.CachedInstance;

      if (sb != null){

      if(capacity <= sb.Capacity){

      StringBuilderCache.CachedInstance = null;

      sb.Clear();

      return sb;

      }

      }

      }

      return new StringBuilder(capacity);

      }

      public static void Release(StringBuilder sb){

      if (sb.Capacity <= MAX_BUILDER_SIZE){

      StringBuilderCache.CachedInstance = sb;

      }

      }

      public static string GetStringAndRelease(StringBuilder sb){

      string result = sb.ToString();

      Release(sb);

      return result;

      }

      }

      疯狂软件教育中心依托开发团队的强大技术实力,把企业最新技术融入实训课程,打造金牌的品质,才能给予学员黄金的未来,疯狂软件凭借过硬的技术实力与丰富的项目开发经验,赢得了社会的肯定。疯狂软件Java培训师资力量强大,课程内容深入,为学员高薪就业做了很好的铺垫,拥有丰富就业指导经验的就业团队也成为了学员高薪就业的先天优势。地址:广州天河区车陂沣宏大厦3楼。

      疯狂Java在前几年的培训过程中,凭借自身强悍的师资、一流的课程、真实的项目、超高的就业率已经让广大南方学子成功走上软件工程师职业道路。大量毕业即失业的学子已通过疯狂Java实现了就业。

  • 相关阅读:
    UVa 116 单向TSP(多段图最短路)
    POJ 1328 Radar Installation(贪心)
    POJ 1260 Pearls
    POJ 1836 Alignment
    POJ 3267 The Cow Lexicon
    UVa 1620 懒惰的苏珊(逆序数)
    POJ 1018 Communication System(DP)
    UVa 1347 旅行
    UVa 437 巴比伦塔
    UVa 1025 城市里的间谍
  • 原文地址:https://www.cnblogs.com/gojava/p/3656137.html
Copyright © 2011-2022 走看看