gpt4 book ai didi

池大小为 1 的 Java 线程池

转载 作者:行者123 更新时间:2023-11-29 06:47:05 24 4
gpt4 key购买 nike

使用池大小仅为 1 的 ThreadPool 来基本上一遍又一遍地回收一个线程以用于应用程序中的不同用途是否有意义?与其执行 new Thread(Runnable()) 等,然后让垃圾收集器处理线程的删除,我认为将一个线程用于不需要一起运行的不同作业会更有效。

这就是我目前正在做的事情,以定义 1 个 poolsize 线程池。

    private static int poolSize = 1;
private static int maxPoolSize = 1;
private static long keepAliveTime= 10;
private static final ArrayBlockingQueue<Runnable> queue = new ArrayBlockingQueue<Runnable>(100);
private static ThreadPoolExecutor threadPool = new ThreadPoolExecutor(poolSize, maxPoolSize, keepAliveTime, TimeUnit.SECONDS, queue);

最佳答案

如果适合您的应用程序的运行方式,那么单线程线程池没有任何问题。例如,在我处理的一个应用程序中,我们有许多服务需要确保数据按到达顺序严格处理。为此,我们只需在单线程执行器上执行任务即可。

同时使用 Executors 意味着将来如果需要可以很容易地调整线程池参数。

关于池大小为 1 的 Java 线程池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3297285/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com