posts - 11,  comments - 0,  trackbacks - 0

          該類提供了線程局部 (thread-local) 變量。這些變量不同于它們的普通對應物,因為訪問某個變量(通過其 get 或 set 方法)的每個線程都有自己的局部變量,它獨立于變量的初始化副本。ThreadLocal 實例通常是類中的 private static 字段,它們希望將狀態與某一個線程(例如,用戶 ID 或事務 ID)相關聯。

          這個是什么,就是解決一個線程內共享一個變量,這個變量只在這個線程內部有效,在一個線程內訪問的都一個同一個對象,而多個線程之間的這個對象卻是相互獨立的。說來就是每一個線程都有一個獨立的此線程副本。
          使用ThreadLocal一般都聲明為靜態的變量
          在我們的線程中有一個threadLocals的Hash表來存放這個對象,我們用ThreadLocal對象作為主鍵,因此我們的ThreadLocal對象聲明為靜態的

          我們可以使用多個TheadLocal,來使一個線程里有多個共享的變量
          這個就是要實現一個線程里面共享一個變量

          public void set(Object 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;
              }
          posted on 2009-05-14 21:03 小暉 閱讀(210) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          <2009年5月>
          262728293012
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          常用鏈接

          留言簿(2)

          隨筆檔案

          文章分類

          相冊

          最新隨筆

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 敦化市| 吉林省| 丰宁| 井研县| 招远市| 湟源县| 平武县| 兴义市| 本溪市| 阿鲁科尔沁旗| 白水县| 山阴县| 玉龙| 罗城| 东阿县| 湘乡市| 闸北区| 扎兰屯市| 朔州市| 伊吾县| 峨眉山市| 余江县| 晋中市| 肇庆市| 卓资县| 拉孜县| 沭阳县| 湄潭县| 尚义县| 湖南省| 泌阳县| 定日县| 灯塔市| 射洪县| 永平县| 四子王旗| 宁海县| 太仓市| 虞城县| 兖州市| 丹巴县|