diff --git a/hutool-core/src/main/java/cn/hutool/core/thread/ThreadUtil.java b/hutool-core/src/main/java/cn/hutool/core/thread/ThreadUtil.java index 1093d9bcd..9a1aecd2d 100644 --- a/hutool-core/src/main/java/cn/hutool/core/thread/ThreadUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/thread/ThreadUtil.java @@ -19,21 +19,33 @@ import java.util.concurrent.TimeUnit; public class ThreadUtil { /** - * 新建一个线程池 + * 新建一个线程池,默认的策略如下: + *
+ * 1. 初始线程数为corePoolSize指定的大小 + * 2. 没有最大线程数限制 + * 3. 默认使用LinkedBlockingQueue,默认队列大小为1024 + * 4. 当运行线程大于corePoolSize放入队列,队列满后抛出异常 + ** - * @param threadSize 同时执行的线程数大小 + * @param corePoolSize 同时执行的线程数大小 * @return ExecutorService */ - public static ExecutorService newExecutor(int threadSize) { + public static ExecutorService newExecutor(int corePoolSize) { ExecutorBuilder builder = ExecutorBuilder.create(); - if (threadSize > 0) { - builder.setCorePoolSize(threadSize); + if (corePoolSize > 0) { + builder.setCorePoolSize(corePoolSize); } return builder.build(); } /** - * 获得一个新的线程池 + * 获得一个新的线程池,默认的策略如下: + *
+ * 1. 初始线程数为 0 + * 2. 最大线程数为Integer.MAX_VALUE + * 3. 使用SynchronousQueue + * 4. 任务直接提交给线程而不保持它们 + ** * @return ExecutorService */ @@ -42,7 +54,13 @@ public class ThreadUtil { } /** - * 获得一个新的线程池,只有单个线程 + * 获得一个新的线程池,只有单个线程,策略如下: + *
+ * 1. 初始线程数为 1 + * 2. 最大线程数为 1 + * 3. 默认使用LinkedBlockingQueue,默认队列大小为1024 + * 4. 同时只允许一个线程工作,剩余放入队列等待,等待数超过1024报错 + ** * @return ExecutorService */ @@ -56,14 +74,17 @@ public class ThreadUtil { /** * 获得一个新的线程池