diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/BalancedQueueRpcExecutor.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/BalancedQueueRpcExecutor.java index 40ba9fe..17637d3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/BalancedQueueRpcExecutor.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/BalancedQueueRpcExecutor.java @@ -22,6 +22,7 @@ import java.util.List; import java.util.Random; import java.util.concurrent.BlockingQueue; import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.ThreadLocalRandom; import org.apache.hadoop.hbase.classification.InterfaceAudience; import org.apache.hadoop.hbase.classification.InterfaceStability; @@ -39,7 +40,7 @@ import com.google.common.base.Preconditions; public class BalancedQueueRpcExecutor extends RpcExecutor { protected final List> queues; - private QueueBalancer balancer; + private final QueueBalancer balancer; public BalancedQueueRpcExecutor(final String name, final int handlerCount, final int numQueues, final int maxQueueLength) { @@ -112,16 +113,14 @@ public class BalancedQueueRpcExecutor extends RpcExecutor { * Queue balancer that just randomly selects a queue in the range [0, num queues). */ private static class RandomQueueBalancer extends QueueBalancer { - private int queueSize; - private Random random; + private final int queueSize; public RandomQueueBalancer(int queueSize) { this.queueSize = queueSize; - this.random = new Random(); } public int getNextQueue() { - return random.nextInt(queueSize); + return ThreadLocalRandom.current().nextInt(queueSize); } } }