使用ThreadFactoryBuilder创建线程池

tech2022-10-18  106

使用 ThreadFactoryBuilder

使用guava的ThreadFactoryBuilder来创建线程池

栈不会溢出,合理化资源

package com.macro.mall.test.thread; import com.google.common.util.concurrent.ThreadFactoryBuilder; import org.apache.tomcat.util.threads.ThreadPoolExecutor; import java.util.concurrent.ExecutorService; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadFactory; import java.util.concurrent.TimeUnit; /** * @author: craywen * @date: 2020-08-25 10:19 * @desc: */ public class ExecutorsDemo { private static ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() .setNameFormat("demo-pool-%d").build(); private static ExecutorService pool = new ThreadPoolExecutor(5, 100, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); public static void main(String[] args) { for (int i = 0; i < Integer.MAX_VALUE; i++) { pool.execute(new SubThread()); } System.out.println("qqq"); } private static class SubThread implements Runnable { @Override public void run() { System.out.println(Thread.currentThread().getState()+"----------"+Thread.currentThread().getName()); } } }

核心线程数五个

Integer.MAX_VALUE 没有溢出。

最新回复(0)