日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

log(四)——MDC使用

發布時間:2024/3/13 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 log(四)——MDC使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?1.MDC put

用MDC的put方法,把需要的context添加到當前線程的context map中。

之前說過,子線程在創建的時候會把父線程中的inheritableThreadLocals變量設置到子線程的inheritableThreadLocals中,而MDC內部是用InheritableThreadLocal實現的,所以自然會把父線程中的上下文帶到子線程中。

2.getCopyOfContextMap

對于線程池中的線程來說,這部分線程是可以重用的,但是線程本身只會初始化一次,所以之后重用線程的時候,就不會進行初始化操作了,也就不會有上一段中提到的父線程inheritableThreadLocals拷貝到子線程中的過程了。

這個時候如果還想傳遞父線程的上下文的話,就要使用getCopyOfContextMap方法。

/*** Return a copy of the current thread's context map. Returned value may be* null.*/public Map getCopyOfContextMap() {lastOperation.set(READ_OPERATION);Map<String, String> hashMap = copyOnInheritThreadLocal.get();if (hashMap == null) {return null;} else {return new HashMap<String, String>(hashMap);}}

該方法會把當前線程的context制作一份副本返回。

ExecutorService.execute(new Runnable())的時候,在Runnable構造的時候,用這個方法得到一個Map,保存起來,這時的context是父線程的。

然后在執行run方法的時候,放到MDC中去——子線程的context map中去。

可以自己封裝一個AbstractRunnable類,對Runnable的run方法進行一個包裝,

public abstract class MdcRunnable implements Runnable {/*** 為了線程池中的線程在復用的時候也能獲得父線程的MDC中的信息,* 子線程第一次初始化的時候沒事,因為通過InheritableThreadLocal* 已經可以獲得MDC中的內容了*/private final Map mdcContext = MDC.getCopyOfContextMap();@Overridepublic final void run() {// 線程重用的時候,把父線程中的context map內容帶入當前線程的context map中,// 因為線程已經初始化過了,不會像初始化時那樣通過拷貝父線程inheritableThreadLocals到子線程// 的inheritableThreadLocals操作來完成線程間context map的傳遞。// 真正執行到這個run方法的時候,已經到了子線程中了,所以要在初始化的時候用// MDC.getCopyOfContextMap()來獲得父線程contest map,那時候還在父線程域中if (mdcContext != null) {MDC.setContextMap(mdcContext);}try {runWithMdc();} finally {MDC.clear();}}protected abstract void runWithMdc(); }


?

用戶真正需要實現的執行任務的方法是runWithMdc方法。

總結

以上是生活随笔為你收集整理的log(四)——MDC使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美日韩国产第一页 | 午夜吃瓜 | 黄色网址哪里有 | 看久久 | 激情av| 久久久久久久黄色片 | www.av小说 | 免费黄色大片 | 日韩欧美色图 | 无套内谢的新婚少妇国语播放 | 欧洲视频一区 | xxxx亚洲| 免费在线观看一区二区三区 | 懂色av一区二区三区四区 | 少妇精品亚洲一区二区成人 | 巨茎大战刘亦菲 | 久久国产一区二区三区 | 久久久久久国产免费a片 | xxx国产在线观看 | 中国黄色一级片 | 中文字幕无线精品亚洲乱码一区 | 日韩欧美国产综合 | 日韩av无码中文字幕 | 尤物在线视频观看 | 影音先锋在线国产 | 欧美成人精品激情在线观看 | 黄视频在线免费 | 僵尸艳谈 | 无码人妻一区二区三区在线 | 国产丝袜视频 | 在线免费不卡视频 | 青青青免费在线视频 | 亚洲va欧美 | 三级自拍视频 | 久久不射电影网 | 视频一区国产精品 | 亚洲不卡一区二区三区 | 成人免费看片网站 | 偷操 | 亚洲一区二区蜜桃 | 欧美三级黄 | 免费观看黄色的网站 | 在线观看第一页 | 波多野结衣91 | www.夜夜爱 | 蜜臂av| 蜜臀av一区| 午夜日韩欧美 | 欧美三级三级三级爽爽爽 | 亚洲中文无码久久 | 国产淫语对白 | 亚洲综合伊人久久 | 国产成人在线观看免费 | 亚洲精品国产精品乱码不卡 | 黄色片成人 | 日本精品视频一区二区 | 99自拍偷拍视频 | 伦理久久 | 午夜一区二区三区在线 | 黄色视屏在线播放 | 亚洲乱码久久 | 深夜福利视频导航 | 女优中文字幕 | 尹人成人 | 精品一区二区三区蜜臀 | 国产伦精品一区二区三区四区视频 | 成人午夜影视 | 亚洲高清在线 | 国产在线三区 | 影音先锋欧美在线 | 伊人影院99 | 网友自拍av | 久久偷看各类女兵18女厕嘘嘘 | 丝袜一区二区三区四区 | 国产福利免费视频 | a级片中文字幕 | 波多野结衣在线一区 | 三级黄片毛片 | 日日摸夜夜添狠狠添久久精品成人 | 姝姝窝人体www聚色窝 | 欧美日韩视频在线观看一区 | 韩日免费av| 日韩不卡在线视频 | 免费www xxx| 99色精品| 人善交videos欧美3d动漫 | 调教丰满的已婚少妇在线观看 | 在线播放波多野结衣 | 亚洲男人第一天堂 | 欧洲成人午夜精品无码区久久 | 无码人妻精品丰满熟人区 | 国产性一乱一性一伧一色 | 让男按摩师摸好爽 | 人人看人人模 | 亚洲一卡二卡三卡四卡 | 四虎久久久 | 杨幂一区二区国产精品 | 色吊丝中文字幕 | 欧美 日韩 国产 成人 |