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

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

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

    stone2083

    初識InheritableThreadLocal

    一直來只知道ThreadLocal,直到最近看slf4j MDC實現(xiàn)代碼的時候,才認(rèn)識了InheritableThreadLocal.
    InheritableThreadLocal顧名思義,可繼承的ThreadLocal.
    看類描述:
    This class extends <tt>ThreadLocal</tt> to provide inheritance of values
     * from parent thread to child thread: when a child thread is created, the
     * child receives initial values for all inheritable thread-local variables
     * for which the parent has values.

    測試代碼:
     1 public class Test {
     2 
     3     public static void main(String[] args) {
     4         //使用ThreadLocal,父子線程之間,不共享Value
     5         final ThreadLocal<String> tl = new ThreadLocal<String>();
     6         tl.set("ThreadLocal-VAL");
     7         System.out.println("Main-1:" + tl.get());
     8         new Thread() {
     9             public void run() {
    10                 System.out.println("Child-1:" + tl.get());
    11             };
    12         }.start();
    13 
    14         //使用InheritableThreadLocal,父線程Value可讓子線程共享
    15         final ThreadLocal<String> itl = new InheritableThreadLocal<String>();
    16         itl.set("InheritableThreadLocal-VAL");
    17         System.out.println("Main-2:" + itl.get());
    18         new Thread() {
    19             public void run() {
    20                 System.out.println("Child-2:" + itl.get());
    21             };
    22         }.start();
    23 
    24     }
    25 }

    輸出內(nèi)容:
    Main-1:ThreadLocal-VAL
    Main-2:InheritableThreadLocal-VAL
    Child-1:null
    Child-2:InheritableThreadLocal-VAL


    ......分隔符號......

    順帶著簡單說下MDC.(Mapped Diagnostic Context). 中文直譯太惡心了,我理解的意思是,和環(huán)境相關(guān)的上下文信息.
    比如在web應(yīng)用中,我們可以把用戶的ip,訪問url等放入到這個上下文中,log打印的時候,就能得到這個信息.

    在slf4j BasicMDCAdapter實現(xiàn)中,就是用了InheritableThreadLocal
    1 public class BasicMDCAdapter implements MDCAdapter {
    2 
    3   private InheritableThreadLocal inheritableThreadLocal = new InheritableThreadLocal();
    4   
    5   //.
    6 
    7 }

    posted on 2010-07-23 09:17 stone2083 閱讀(2590) 評論(0)  編輯  收藏 所屬分類: java

    主站蜘蛛池模板: 四虎永久免费网站免费观看| 亚洲精品无码乱码成人| 亚洲日韩乱码久久久久久| 免费人成黄页在线观看日本| 亚洲毛片av日韩av无码| free哆拍拍免费永久视频| 18未年禁止免费观看| 亚洲色偷偷偷网站色偷一区| 精品特级一级毛片免费观看| 久久中文字幕免费视频| 国产精品嫩草影院免费| 老汉色老汉首页a亚洲| 天天影院成人免费观看| 中文字幕亚洲乱码熟女一区二区| 亚洲区精品久久一区二区三区| 9420免费高清在线视频| 曰韩亚洲av人人夜夜澡人人爽 | 久久av免费天堂小草播放| 亚洲综合av永久无码精品一区二区 | 国产又黄又爽又大的免费视频 | 色网站在线免费观看| 亚洲人午夜射精精品日韩| 亚洲人成网站免费播放| 久久青草91免费观看| 伊人久久综在合线亚洲91| 成全动漫视频在线观看免费高清版下载| 亚洲精品高清国产一线久久| 2020因为爱你带字幕免费观看全集| 亚洲视频一区二区三区| 成人爱做日本视频免费| 中文字幕手机在线免费看电影| 亚洲精彩视频在线观看| 国产小视频免费观看| 久久国产乱子伦精品免费不卡| 亚洲成a人片在线观看精品| 免费国产高清视频| 久久精品一本到99热免费| 亚洲精华国产精华精华液网站| 中文字幕不卡亚洲| 无码中文字幕av免费放| 国产成人精品日本亚洲11|