From ffdc49bd2fac35b665db39cbc6090a1f7a2cbc8d Mon Sep 17 00:00:00 2001 From: zhangxin10 Date: Sun, 8 Nov 2015 14:08:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=A4=84=E7=90=86=E7=BA=BF?= =?UTF-8?q?=E7=A8=8B=E6=9C=80=E5=A4=A7=E7=9A=84=E5=88=86=E9=85=8D=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cloud/skywalking/buffer/BufferGroup.java | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/skywalking-api/src/main/java/com/ai/cloud/skywalking/buffer/BufferGroup.java b/skywalking-api/src/main/java/com/ai/cloud/skywalking/buffer/BufferGroup.java index b5f5911a9..e7bbe9149 100644 --- a/skywalking-api/src/main/java/com/ai/cloud/skywalking/buffer/BufferGroup.java +++ b/skywalking-api/src/main/java/com/ai/cloud/skywalking/buffer/BufferGroup.java @@ -18,13 +18,17 @@ public class BufferGroup { public BufferGroup(String groupName) { this.groupName = groupName; - int k = 0, l; - for (int i = 0; i < MAX_WORKER; i++) { - l = GROUP_MAX_SIZE / MAX_WORKER + k; - if (l + GROUP_MAX_SIZE / MAX_WORKER > GROUP_MAX_SIZE) - l = GROUP_MAX_SIZE; - new ConsumerWorker(k, l).start(); - k = l; + + int step = (int) Math.ceil(GROUP_MAX_SIZE * 1.0 / MAX_WORKER); + int start = 0, end = 0; + while (true) { + if (end + step >= GROUP_MAX_SIZE){ + new ConsumerWorker(start, GROUP_MAX_SIZE).start(); + break; + } + end += step; + new ConsumerWorker(start, end).start(); + start = end; } }