This is an automated email from the ASF dual-hosted git repository.
tison pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/curator.git
The following commit(s) were added to refs/heads/master by this push:
new f44ff884 CURATOR-514: Utilize ThreadLocalRandom In QueueSharder (#307)
f44ff884 is described below
commit f44ff8844f0727e155d7f8e8e6172757acc060cd
Author: belugabehr <[email protected]>
AuthorDate: Thu May 19 23:53:07 2022 -0400
CURATOR-514: Utilize ThreadLocalRandom In QueueSharder (#307)
---
.../apache/curator/framework/recipes/queue/QueueSharder.java | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git
a/curator-recipes/src/main/java/org/apache/curator/framework/recipes/queue/QueueSharder.java
b/curator-recipes/src/main/java/org/apache/curator/framework/recipes/queue/QueueSharder.java
index 3cd0cdbe..32470e4b 100644
---
a/curator-recipes/src/main/java/org/apache/curator/framework/recipes/queue/QueueSharder.java
+++
b/curator-recipes/src/main/java/org/apache/curator/framework/recipes/queue/QueueSharder.java
@@ -35,13 +35,13 @@ import java.io.Closeable;
import java.io.IOException;
import java.util.Collection;
import java.util.List;
-import java.util.Random;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.Callable;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
+import java.util.concurrent.ThreadLocalRandom;
import java.util.concurrent.atomic.AtomicReference;
/**
@@ -74,7 +74,6 @@ public class QueueSharder<U, T extends QueueBase<U>>
implements Closeable
private final Set<String> preferredQueues =
Sets.newSetFromMap(Maps.<String, Boolean>newConcurrentMap());
private final AtomicReference<State> state = new
AtomicReference<State>(State.LATENT);
private final LeaderLatch leaderLatch;
- private final Random random = new Random();
private final ExecutorService service;
private static final String QUEUE_PREFIX = "queue-";
@@ -179,12 +178,13 @@ public class QueueSharder<U, T extends QueueBase<U>>
implements Closeable
List<String> localPreferredQueues =
Lists.newArrayList(preferredQueues);
if ( localPreferredQueues.size() > 0 )
{
- String key =
localPreferredQueues.get(random.nextInt(localPreferredQueues.size()));
+ String key = localPreferredQueues.get(
+
ThreadLocalRandom.current().nextInt(localPreferredQueues.size()));
return queues.get(key);
}
- List<String> keys = Lists.newArrayList(queues.keySet());
- String key = keys.get(random.nextInt(keys.size()));
+ List<String> keys = Lists.newArrayList(queues.keySet());
+ String key =
keys.get(ThreadLocalRandom.current().nextInt(keys.size()));
return queues.get(key);
}