gpt4 book ai didi

java - Java中的线程池

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:58:38 26 4
gpt4 key购买 nike

我使用 ThreadPool 在 Java 中编写应用程序。首先我创建新的线程池:

private ExecutorService threadExecutor = Executors.newFixedThreadPool( 20 );

然后我创建了一些 Runnable 对象。之后我执行我的 ThreadPool 时不时地传递给他相同的 Runnable 对象:

threadExecutor.execute(serverRunnable);

我每 20 秒执行一次这个线程池。我的问题是 threadExecutor 停止工作大约 5 分钟。它只是不执行 Runnable 对象。我注意到当我增加参数时:

Executors.newFixedThreadPool( 20 );

从 20 到例如100 个 ThreadPool 将工作更长时间。谁能解释一下为什么 ThreadPool 停止工作?

附言。我在 Android 中编写这段代码

最佳答案

首先,如果您想安排每 20 秒执行一次任务,请尝试改用 ScheduledThreadPoolExecutor:http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/ScheduledThreadPoolExecutor.html

看起来您的可运行对象不会终止 - 这样它会在固定时间后超过 20 个线程。如果您的 runnable 正常终止 - 您将能够无限长地使用您的执行程序。

关于java - Java中的线程池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8786604/

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