亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

ThreadLocal基礎用法

ThreadLocal基礎用法

Helenr 2018-08-10 14:05:13
問題描述ThreadLocal基礎用法問題出現的環境背景及自己嘗試過哪些方法小弟有一個業務場景是要在執行完基本邏輯之后將訂單的信息通過存放到map中然后執行http推送到另一個平臺,map里面有兩個字段的信息是url地址和對方的接口地址(還有別的信息) 但是在實際推送的過程中這兩個字段只是在方法內部用一下,并不包含在傳輸的json中,我是使用先put 然后再remove的方式從map中移除的,然后領導建議使用ThreadLocal保證代碼侵入性很低 但是看了一上午沒看出來實際怎么存放多個變量去使用ThreadLocal相關代碼// 請把代碼文本粘貼到下方(請勿用圖片代替代碼)    String a_key = data.get("a_key").toString();     String b_key = data.get("b_key").toString();     String c_url = data.get("c_url").toString();     data.remove("a_key");     data.remove("b_key");     data.remove("c_url");你期待的結果是什么?實際看到的錯誤信息又是什么?使用ThreadLocal來存放多個變量 請大神分析一下
查看完整描述

1 回答

?
手掌心

TA貢獻1942條經驗 獲得超3個贊

ThreadLocal,是將變量與線程進行綁定,及在線程中保存一個ThreadLocalMap<ThreadLocal, T>,我看你這需求,想保存多個值,最簡單的解決方案就是ThreadLocal中維護一個Map,然后由Map存放多個變量。
ThreadLocal<Map<String, String>> threadLocal = ThreadLocal.withInitial(()->new HashMap<String, String>());

    threadLocal.get().put("k1", "v1");
    threadLocal.get().put("k2", "v2");
    threadLocal.get().put("k3", "v3");    
    String v1 = threadLocal.get().get("k1");    String v2 = threadLocal.get().get("k2");    String v3 = threadLocal.get().get("k3");


查看完整回答
反對 回復 2018-08-12
  • 1 回答
  • 0 關注
  • 851 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號