From 268f46b8725a6d12a7f5660148aac3ff963317c2 Mon Sep 17 00:00:00 2001 From: TinyAnts Date: Tue, 14 Mar 2023 14:10:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D:=20ThreadLocal=E5=9C=A8?= =?UTF-8?q?=E9=AB=98=E5=B9=B6=E5=8F=91=E4=B8=8B=E9=87=8D=E5=A4=8D=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E5=AF=B9=E8=B1=A1=E5=AF=BC=E8=87=B4put=E5=80=BC?= =?UTF-8?q?=E4=B8=A2=E5=A4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mdd/admin/LikeAdminThreadLocal.java | 12 +++++++----- .../java/com/mdd/front/LikeFrontThreadLocal.java | 11 ++++++----- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/server/like-admin/src/main/java/com/mdd/admin/LikeAdminThreadLocal.java b/server/like-admin/src/main/java/com/mdd/admin/LikeAdminThreadLocal.java index a7affdd5..7be25e6f 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/LikeAdminThreadLocal.java +++ b/server/like-admin/src/main/java/com/mdd/admin/LikeAdminThreadLocal.java @@ -3,8 +3,9 @@ package com.mdd.admin; import com.mdd.common.util.ListUtils; import java.util.Collections; -import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentSkipListMap; /** * 本地线程 @@ -19,17 +20,18 @@ public class LikeAdminThreadLocal { /** * 取得本地线程对象 */ - private static final java.lang.ThreadLocal> MY_LOCAL = new java.lang.ThreadLocal<>(); + private static final java.lang.ThreadLocal> MY_LOCAL = new java.lang.ThreadLocal<>(); /** * 写入本地线程 */ public static void put(String key, Object val) { - LinkedHashMap map = MY_LOCAL.get(); + Map map = MY_LOCAL.get(); if (map == null) { - map = new LinkedHashMap<>(); + synchronized (MY_LOCAL) { + map = new ConcurrentSkipListMap<>(); + } } - map.put(key, val); MY_LOCAL.set(map); } diff --git a/server/like-front/src/main/java/com/mdd/front/LikeFrontThreadLocal.java b/server/like-front/src/main/java/com/mdd/front/LikeFrontThreadLocal.java index f1e47fdd..f3bc2d8c 100644 --- a/server/like-front/src/main/java/com/mdd/front/LikeFrontThreadLocal.java +++ b/server/like-front/src/main/java/com/mdd/front/LikeFrontThreadLocal.java @@ -1,7 +1,7 @@ package com.mdd.front; -import java.util.LinkedHashMap; import java.util.Map; +import java.util.concurrent.ConcurrentSkipListMap; public class LikeFrontThreadLocal { @@ -13,17 +13,18 @@ public class LikeFrontThreadLocal { /** * 取得本地线程对象 */ - private static final java.lang.ThreadLocal> MY_LOCAL = new java.lang.ThreadLocal<>(); + private static final java.lang.ThreadLocal> MY_LOCAL = new java.lang.ThreadLocal<>(); /** * 写入本地线程 */ public static void put(String key, Object val) { - LinkedHashMap map = MY_LOCAL.get(); + Map map = MY_LOCAL.get(); if (map == null) { - map = new LinkedHashMap<>(); + synchronized (MY_LOCAL) { + map = new ConcurrentSkipListMap<>(); + } } - map.put(key, val); MY_LOCAL.set(map); }