From f3ca0d0ea52bf05df87e9b1e268b7f5d69423a88 Mon Sep 17 00:00:00 2001 From: Kirs Date: Fri, 26 Mar 2021 08:33:36 +0800 Subject: [PATCH] Timestamp in GlobalIdGenerator is implemented using ThreadLocalRandom (#6623) --- .../apm/agent/core/context/ids/GlobalIdGenerator.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/ids/GlobalIdGenerator.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/ids/GlobalIdGenerator.java index 21a85b0a6a..0adb77d3d3 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/ids/GlobalIdGenerator.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/ids/GlobalIdGenerator.java @@ -18,8 +18,9 @@ package org.apache.skywalking.apm.agent.core.context.ids; -import java.util.Random; import java.util.UUID; +import java.util.concurrent.ThreadLocalRandom; + import org.apache.skywalking.apm.util.StringUtil; public final class GlobalIdGenerator { @@ -58,7 +59,6 @@ public final class GlobalIdGenerator { // Just for considering time-shift-back only. private long runRandomTimestamp; private int lastRandomValue; - private Random random; private IDContext(long lastTimestamp, short threadSeq) { this.lastTimestamp = lastTimestamp; @@ -74,11 +74,8 @@ public final class GlobalIdGenerator { if (currentTimeMillis < lastTimestamp) { // Just for considering time-shift-back by Ops or OS. @hanahmily 's suggestion. - if (random == null) { - random = new Random(); - } if (runRandomTimestamp != currentTimeMillis) { - lastRandomValue = random.nextInt(); + lastRandomValue = ThreadLocalRandom.current().nextInt(); runRandomTimestamp = currentTimeMillis; } return lastRandomValue; -- GitLab