From cdbe53d3d9ed6f7158b9abb1a9c320c4754a2d6b Mon Sep 17 00:00:00 2001 From: Redkale <22250530@qq.com> Date: Wed, 24 Aug 2016 17:50:30 +0800 Subject: [PATCH] --- src/org/redkale/boot/NodeServer.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/org/redkale/boot/NodeServer.java b/src/org/redkale/boot/NodeServer.java index ac7abd232..ff74bae29 100644 --- a/src/org/redkale/boot/NodeServer.java +++ b/src/org/redkale/boot/NodeServer.java @@ -12,7 +12,7 @@ import java.lang.reflect.*; import java.net.InetSocketAddress; import java.nio.file.Path; import java.util.*; -import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.*; import java.util.function.*; import java.util.logging.*; import java.util.stream.Collectors; @@ -353,12 +353,18 @@ public abstract class NodeServer { localServiceWrappers.clear(); localServiceWrappers.addAll(swlist); final List slist = sb == null ? null : new CopyOnWriteArrayList<>(); - localServiceWrappers.stream().forEach(y -> { - long s = System.currentTimeMillis(); - y.getService().init(y.getConf()); - long e = System.currentTimeMillis() - s; - if (slist != null) slist.add(new StringBuilder().append(threadName).append(y.toSimpleString()).append(" loaded and inited ").append(e).append(" ms").append(LINE_SEPARATOR).toString()); + CountDownLatch clds = new CountDownLatch(localServiceWrappers.size()); + localServiceWrappers.parallelStream().forEach(y -> { + try { + long s = System.currentTimeMillis(); + y.getService().init(y.getConf()); + long e = System.currentTimeMillis() - s; + if (slist != null) slist.add(new StringBuilder().append(threadName).append(y.toSimpleString()).append(" loaded and inited ").append(e).append(" ms").append(LINE_SEPARATOR).toString()); + } finally { + clds.countDown(); + } }); + clds.await(); if (slist != null && sb != null) { Collections.sort(slist); for (String s : slist) {