ThreadLocal

        //add by wuzhuqu 20180512 這里最好用方法顷级,不然很難知道這里也需要修改
        if (provideInvoiceType != null) {
            sb.append(",provideInvoiceType=").append(getProvideInvoiceType());
        }
        //add by guke 20180630 這里就是個坑,cookie長度是有限制的棵帽,總不能一直往這里面拼接吧通铲,頭部的ThreadLocal變量還是要用起來
        if (areaId != null) {
            sb.append(",areaId=").append(getAreaId());
        }

故事,都從科神的一句注釋開始片任。
我從沒用過這玩意兒,但是看到每個類似context的類的開頭都要來一個蔬胯。
JDK的注釋第一句就說明了它的來意

This class provides thread-local variables.
為每一個使用該變量的線程都提供一個變量值的副本对供,是java中一種較為特殊的線程綁定機制。
從線程角度看氛濒,每個線程都保持一個對其局部變量副本的隱式引用
https://blog.csdn.net/u012099869/article/details/51027236
概括說來产场,對于多線程資源共享的問題,同步機制采用了“時間換空間”的方式舞竿,而ThreadLocal采用了“以空間換時間”的方式京景。前者進提供一份變量,讓不同的線程排隊訪問骗奖,而后者為每一個線程都提供了一份變量确徙,因此可以同時訪問而互不影響。

結(jié)合科神的注釋聯(lián)想执桌,是否是用cookie結(jié)合ThreadLocal的方式實現(xiàn)無狀態(tài)登錄
https://blog.csdn.net/qq525099302/article/details/46775801
果然有
(后續(xù)可以看看jsf中的“基于ThreadLocal的隱式傳參”)

先看一哈ThreadLocal的整體結(jié)構(好像一直不擅長看這個鄙皇,可以總結(jié)一下方法學)

ThreadLocal結(jié)構

喏,大佬的讀源碼系列仰挣,這個看完了應該就會看源碼了吧
https://blog.csdn.net/liangxw1/article/details/51435308
https://blog.csdn.net/liangxw1/article/details/51435308
(這個比好像有丶東西)
首先看一個jdk里面用到ThreadLocal的例子

import java.util.concurrent.atomic.AtomicInteger;

public class UniqueThreadIdGenerator {
 
     private static final AtomicInteger uniqueId = new AtomicInteger(0);
 
     private static final ThreadLocal < Integer > uniqueNum = 
         new ThreadLocal < Integer > () {
             @Override protected Integer initialValue() {
                 return uniqueId.getAndIncrement();
         }
     };
  
     public static int getCurrentThreadId() {
         return uniqueId.get();
     }
}

龜龜伴逸,因為很多設計模式不了解,感覺看JDK總感覺一堆費代碼(微笑)
首先我們看看為什么要有ThreadLocal
https://www.cnblogs.com/dolphin0520/p/3920407.html
大致上就是膘壶,線程之間需要共享的變量错蝴,但是一個的線程對該變量的操作并不會影響別的線程,這種情景颓芭。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末顷锰,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子畜伐,更是在濱河造成了極大的恐慌馍惹,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,378評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件玛界,死亡現(xiàn)場離奇詭異万矾,居然都是意外死亡,警方通過查閱死者的電腦和手機慎框,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評論 3 399
  • 文/潘曉璐 我一進店門良狈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人笨枯,你說我怎么就攤上這事薪丁∮鑫鳎” “怎么了?”我有些...
    開封第一講書人閱讀 168,983評論 0 362
  • 文/不壞的土叔 我叫張陵严嗜,是天一觀的道長粱檀。 經(jīng)常有香客問我,道長漫玄,這世上最難降的妖魔是什么茄蚯? 我笑而不...
    開封第一講書人閱讀 59,938評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮睦优,結(jié)果婚禮上渗常,老公的妹妹穿的比我還像新娘。我一直安慰自己汗盘,他們只是感情好皱碘,可當我...
    茶點故事閱讀 68,955評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著隐孽,像睡著了一般癌椿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上缓醋,一...
    開封第一講書人閱讀 52,549評論 1 312
  • 那天如失,我揣著相機與錄音,去河邊找鬼送粱。 笑死褪贵,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的抗俄。 我是一名探鬼主播脆丁,決...
    沈念sama閱讀 41,063評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼动雹!你這毒婦竟也來了槽卫?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,991評論 0 277
  • 序言:老撾萬榮一對情侶失蹤胰蝠,失蹤者是張志新(化名)和其女友劉穎歼培,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體茸塞,經(jīng)...
    沈念sama閱讀 46,522評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡躲庄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,604評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了钾虐。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片噪窘。...
    茶點故事閱讀 40,742評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖效扫,靈堂內(nèi)的尸體忽然破棺而出倔监,到底是詐尸還是另有隱情直砂,我是刑警寧澤,帶...
    沈念sama閱讀 36,413評論 5 351
  • 正文 年R本政府宣布浩习,位于F島的核電站静暂,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏瘦锹。R本人自食惡果不足惜籍嘹,卻給世界環(huán)境...
    茶點故事閱讀 42,094評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望弯院。 院中可真熱鬧,春花似錦泪掀、人聲如沸听绳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽椅挣。三九已至,卻和暖如春塔拳,著一層夾襖步出監(jiān)牢的瞬間鼠证,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評論 1 274
  • 我被黑心中介騙來泰國打工靠抑, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留量九,地道東北人。 一個月前我還...
    沈念sama閱讀 49,159評論 3 378
  • 正文 我出身青樓颂碧,卻偏偏與公主長得像荠列,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子载城,可洞房花燭夜當晚...
    茶點故事閱讀 45,747評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 七彩丹霞诉瓦,一路向西 客從東方來川队,絲路到敦煌 陽關,走在時光的邊陲線上 西北睬澡,蒼穹之間固额,懷古思今。
    希拉李閱讀 613評論 13 18
  • 1.自然是無法“毀滅”的猴贰。6500萬年前对雪,一顆隕石讓恐龍滅絕,但卻為哺乳類動物開啟了一條康莊大道米绕。 2.現(xiàn)代工業(yè)對...
    hanxuerping閱讀 134評論 0 0
  • 換行 強制不換行p { white-space:nowrap; }自動換行p { word-wrap:break-...
    風兩般的男人閱讀 219評論 0 0