diff --git a/src/main/java/org/redkale/net/client/Client.java b/src/main/java/org/redkale/net/client/Client.java index bd4b0d5c3..5b435443a 100644 --- a/src/main/java/org/redkale/net/client/Client.java +++ b/src/main/java/org/redkale/net/client/Client.java @@ -43,6 +43,8 @@ public abstract class Client, R extends ClientR protected final ScheduledThreadPoolExecutor timeoutScheduler; + protected final Random random = new Random(); + // 结合ClientRequest.isCompleted()使用 // 使用场景:批量request提交时,后面的request需响应上一个request返回值来构建 // 例如: MySQL批量提交PrepareSQL场景 @@ -404,7 +406,6 @@ public abstract class Client, R extends ClientR if (workThread != null && workThread.threads() == entrys.length && workThread.index() > -1) { return entrys[workThread.index()]; } - ThreadLocalRandom random = ThreadLocalRandom.current(); int index = workThread == null || workThread.index() < 0 ? random.nextInt(entrys.length) : workThread.index() % entrys.length; diff --git a/src/main/java/org/redkale/net/client/ClientConnection.java b/src/main/java/org/redkale/net/client/ClientConnection.java index d26d79e04..07f78d1f2 100644 --- a/src/main/java/org/redkale/net/client/ClientConnection.java +++ b/src/main/java/org/redkale/net/client/ClientConnection.java @@ -195,38 +195,6 @@ public abstract class ClientConnection extends CompletableFuture< } } + public static ClientFuture[] array(Collection list) { + return list.toArray(new ClientFuture[list.size()]); + } + @Override // JDK9+ public ClientFuture newIncompleteFuture() { ClientFuture future = new ClientFuture<>(conn, request); diff --git a/src/main/java/org/redkale/net/client/ClientWriteThread.java b/src/main/java/org/redkale/net/client/ClientWriteThread.java index 8028b0941..1436006fa 100644 --- a/src/main/java/org/redkale/net/client/ClientWriteThread.java +++ b/src/main/java/org/redkale/net/client/ClientWriteThread.java @@ -51,7 +51,7 @@ public class ClientWriteThread extends Thread { list.add(respFuture); } } - conn.sendRequestToChannel(list.toArray(new ClientFuture[list.size()])); + conn.sendRequestToChannel(ClientFuture.array(list)); list.clear(); if (over) { return;