<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 20,comments - 6,trackbacks - 0
  • ThreadLocal是一個線程隔離(或者說是線程安全)的變量存儲的管理實體(注意:不是存儲用的),它以Java類方式表現;
  • synchronized是Java的一個保留字,只是一個代碼標識符,它依靠JVM的鎖機制來實現臨界區的函數、變量在CPU運行訪問中的原子性。
  •  

    理解ThreadLocal中提到的變量副本
        事實上,我們向ThreadLocal中set的變量不是由ThreadLocal來存儲的,而是Thread線程對象自身保存。當用戶調用ThreadLocal對象的set(Object o)時,該方法則通過Thread.currentThread()獲取當前線程,將變量存入Thread中的一個Map內,而Map的Key就是當前的ThreadLocal實例。請看源碼,這是最主要的兩個函數,能看出ThreadLocal與Thread的調用關系:

    public void set(T value) {   
            Thread t 
    = Thread.currentThread();   
            ThreadLocalMap map 
    = getMap(t);   
            
    if (map != null)   
                map.set(
    this, value);   
            
    else  
                createMap(t, value);   
    }
       
      
    ThreadLocalMap getMap(Thread t) 
    {   
            
    return t.threadLocals;   
    }
      
    所謂的變量副本,即是對Object Reference(對象引用)的拷貝

    理解Thread和 ThreadLocal對變量的引用關系
        實際上Thread和ThreadLocal對變量引用關系就像是坐標系中的X軸和Y軸,是從兩個維度上來組織對變量的引用的。
    • 首先說Thread。     我們知道一個ThreadOne的執行會貫穿多個方法MethodA、MethodB、MethodC這些方法可能分布于不同的類實例。假設,這些方法分別使用了ThreadLocalA、ThreadLocalB、ThreadLocalC來保存線程本地變量,那么這些變量都存于ThreadOne的Map中,并使用各自的ThreadLocal實例作為key。 因此,可以認為,借助ThreanLocal的set方法,在X軸上,Thread橫向關聯同一線程上下文中來自多個Method的變量引用副本。

    接著說ThreadLocal。     一個MethodA中的X變量將被多個線程ThreadOne、ThreadTwo、ThreadThree所訪問。假設MethodA使用ThreadLocal存儲X,通過set方法,以ThreadLocal作為key值,將不同線程來訪時的不同的變量值引用保存于ThreadOne、ThreadTwo、ThreadThree的各自線程上下文中,確保每個線程有自己的一個變量值。因此,可以認為,ThreadLocal是以Method為Y軸,縱向關聯了處于同一方法中的不同線程上的變量。

    posted on 2009-03-04 16:04 Johnhe 閱讀(323) 評論(0)  編輯  收藏 所屬分類: J2SE
    主站蜘蛛池模板: 日韩色视频一区二区三区亚洲 | a毛看片免费观看视频| 国产亚洲漂亮白嫩美女在线| 一本色道久久88亚洲精品综合| 亚洲国产成人久久综合一区| 亚洲国产美女视频| 亚洲人成在线中文字幕| 亚洲国产精品综合久久20| 亚洲自偷自偷在线成人网站传媒 | 亚洲国产精品SSS在线观看AV| 中文字幕亚洲日本岛国片| 国产亚洲老熟女视频| 亚洲精品无码成人AAA片| 亚洲国产精品成人精品无码区在线| 国产V亚洲V天堂无码久久久| 亚洲第一精品在线视频| 亚洲视频免费观看| 456亚洲人成在线播放网站| 亚洲偷自拍另类图片二区| 美女一级毛片免费观看| 一级毛片免费一级直接观看| 日韩a级无码免费视频| 7x7x7x免费在线观看| 毛片大全免费观看| 免费A级毛片在线播放不收费| 国产成人亚洲精品影院| 久久精品国产亚洲香蕉| 亚洲国产综合第一精品小说| 亚洲人成人伊人成综合网无码| 国产精品亚洲专区无码牛牛| jizz在线免费播放| 99久久免费精品高清特色大片| 黄页网站在线看免费| 免费国产成人午夜电影| 日本亚洲欧洲免费天堂午夜看片女人员| 亚洲自偷自拍另类12p| 亚洲综合在线一区二区三区| 免费一区二区三区在线视频| 欧洲人成在线免费| 免费a级毛片无码a∨蜜芽试看| 四虎影视永久免费观看|