From 88026fae3c4e6416a03e6274becf604ddc0488f1 Mon Sep 17 00:00:00 2001 From: Redkale Date: Mon, 23 Jan 2023 20:38:25 +0800 Subject: [PATCH] =?UTF-8?q?Client=E6=B5=BC=E6=A8=BA=E5=AF=B2connIndex?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/redkale/net/client/Client.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/redkale/net/client/Client.java b/src/main/java/org/redkale/net/client/Client.java index b67efd980..50a0ece64 100644 --- a/src/main/java/org/redkale/net/client/Client.java +++ b/src/main/java/org/redkale/net/client/Client.java @@ -48,6 +48,8 @@ public abstract class Client, R extends ClientR protected final LongAdder respDoneCounter = new LongAdder(); + protected final AtomicLong connIndexSeq = new AtomicLong(); + private final AtomicInteger connSeqno = new AtomicInteger(); private boolean closed; @@ -250,14 +252,14 @@ public abstract class Client, R extends ClientR return CompletableFuture.completedFuture(cc); } } - int connIndex; final int size = this.connArray.length; - WorkThread workThread = WorkThread.currWorkThread(); - if (workThread != null && workThread.threads() == size) { - connIndex = workThread.index(); - } else { - connIndex = (int) Math.abs(Thread.currentThread().getId() % size); - } + int connIndex = (int) Math.abs(connIndexSeq.getAndIncrement()) % size; +// WorkThread workThread = WorkThread.currWorkThread(); +// if (workThread != null && workThread.threads() == size) { +// connIndex = workThread.index(); +// } else { +// connIndex = (int) Math.abs(Thread.currentThread().getId() % size); +// } // if (connIndex >= 0) { C cc = (C) this.connArray[connIndex]; if (cc != null && cc.isOpen()) {