相关疑难解决方法(0)

146
推荐指数
7
解决办法
10万
查看次数

如何增加tomcat线程池中的线程数?

我只是想知道如何增加tomcat线程池中的线程数?以及设置最大值的数字,我不知道什么是合适的?

threadpool tomcat7

17
推荐指数
3
解决办法
10万
查看次数

ExecutorService应该是静态的还是全局的

我想在整个应用程序中使用相同的线程池.为此,我可以让ExecutorService静态和全局,这样我可以调用ThreadUtil.executorService得到ExecutorService,当我需要它.

public class ThreadUtil {
    public static final ExecutorService executorService = Executors.newCachedThreadPool();
}
Run Code Online (Sandbox Code Playgroud)

可以像这样实例化多个线程池吗?

另外,我的应用程序是TCP服务器.如果我不知道游泳池应该有多大,可以简单地使用newCachedThreadPool吗?

java multithreading executorservice

11
推荐指数
1
解决办法
7401
查看次数

Java CachedThreadPool与FixedThreadPool

我在我的应用程序上运行了负载测试,以找到支持计划负载所需的最大线程数.

我已经使用过,ExecutorService CachedThreadPool所以线程是根据负载动态创建的.现在我知道使用最大线程数的值getLargestPoolSize().

我应更换CachedThreadPoolFixedThreadPool(maxValue),以避免大量(Integer.MAX_VALUE)的线程创建的行为CachedThreadPool

建议每个人的利弊.

java multithreading executorservice threadpoolexecutor

9
推荐指数
1
解决办法
3521
查看次数

覆盖线程池中线程的中断方法

说我有这个:

class Queue {
  private static ExecutorService executor = Executors.newFixedThreadPool(1);

  public void use(Runnable r){
    Queue.executor.execute(r);
  }

}
Run Code Online (Sandbox Code Playgroud)

我的问题是 - 如何定义池中使用的线程,特别是想要覆盖池中线程的中断方法:

   @Override 
    public void interrupt() {
      synchronized(x){
        isInterrupted = true;
        super.interrupt();
      }
    }
Run Code Online (Sandbox Code Playgroud)

java multithreading executorservice threadpool

5
推荐指数
1
解决办法
70
查看次数

动态线程池

我有一个长时间运行的过程,它监听事件并进行一些密集的处理.

目前我Executors.newFixedThreadPool(x)用来限制同时运行的作业数量,但是根据一天中的时间和其他各种因素,我希望能够动态增加或减少并发线程的数量.

如果我减少并发线程的数量,我希望当前正在运行的作业能够很好地完成.

是否有一个Java库可以让我控制并动态增加或减少线程池中运行的并发线程数?(该类必须实现ExecutorService).

我必须自己实施吗?

java multithreading executorservice threadpool threadpoolexecutor

4
推荐指数
1
解决办法
4513
查看次数