mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-07-21 15:09:48 +08:00
add comment
This commit is contained in:
@@ -19,21 +19,33 @@ import java.util.concurrent.TimeUnit;
|
||||
public class ThreadUtil {
|
||||
|
||||
/**
|
||||
* 新建一个线程池
|
||||
* 新建一个线程池,默认的策略如下:
|
||||
* <pre>
|
||||
* 1. 初始线程数为corePoolSize指定的大小
|
||||
* 2. 没有最大线程数限制
|
||||
* 3. 默认使用LinkedBlockingQueue,默认队列大小为1024
|
||||
* 4. 当运行线程大于corePoolSize放入队列,队列满后抛出异常
|
||||
* </pre>
|
||||
*
|
||||
* @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();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得一个新的线程池
|
||||
* 获得一个新的线程池,默认的策略如下:
|
||||
* <pre>
|
||||
* 1. 初始线程数为 0
|
||||
* 2. 最大线程数为Integer.MAX_VALUE
|
||||
* 3. 使用SynchronousQueue
|
||||
* 4. 任务直接提交给线程而不保持它们
|
||||
* </pre>
|
||||
*
|
||||
* @return ExecutorService
|
||||
*/
|
||||
@@ -42,7 +54,13 @@ public class ThreadUtil {
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得一个新的线程池,只有单个线程
|
||||
* 获得一个新的线程池,只有单个线程,策略如下:
|
||||
* <pre>
|
||||
* 1. 初始线程数为 1
|
||||
* 2. 最大线程数为 1
|
||||
* 3. 默认使用LinkedBlockingQueue,默认队列大小为1024
|
||||
* 4. 同时只允许一个线程工作,剩余放入队列等待,等待数超过1024报错
|
||||
* </pre>
|
||||
*
|
||||
* @return ExecutorService
|
||||
*/
|
||||
@@ -56,14 +74,17 @@ public class ThreadUtil {
|
||||
|
||||
/**
|
||||
* 获得一个新的线程池<br>
|
||||
* 如果maximumPoolSize =》 corePoolSize,在没有新任务加入的情况下,多出的线程将最多保留60s
|
||||
* 如果maximumPoolSize >= corePoolSize,在没有新任务加入的情况下,多出的线程将最多保留60s
|
||||
*
|
||||
* @param corePoolSize 初始线程池大小
|
||||
* @param maximumPoolSize 最大线程池大小
|
||||
* @return {@link ThreadPoolExecutor}
|
||||
*/
|
||||
public static ThreadPoolExecutor newExecutor(int corePoolSize, int maximumPoolSize) {
|
||||
return ExecutorBuilder.create().setCorePoolSize(corePoolSize).setMaxPoolSize(maximumPoolSize).build();
|
||||
return ExecutorBuilder.create()
|
||||
.setCorePoolSize(corePoolSize)
|
||||
.setMaxPoolSize(maximumPoolSize)
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user