Tomcat:
server.xml文件的<Connector/>节点中
最大线程数:maxThreads【同时处理的sevlete】
等待队列:acceptCount【线程数已达最大,就进入队列等待】
连接超时:connectionTimeout【建立客户连接超时的时间,毫秒单位,-1不超时】ps:建立连接所需的时间
mysql:
my.ini文件中
max_connections为连接数
线程池:
用的是java.util.concurrent.ThreadPoolExecutor
ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory, handler);
int corePoolSize, //核心线程大小 PS【这个能显著提升或降低并发线程数】
int maximumPoolSize, //最大线程大小
long keepAliveTime, // 线程没有任务,最大保持时间【调用allowCoreThreadTimeOut(boolean)可将没有任务核心线程释放】
TimeUnit unit,//参数keepAliveTime的时间单位 分7种
BlockingQueue<Runnable> workQueue, //一个阻塞队列
ThreadFactory threadFactory, //线程工厂,主要用来创建线程
RejectedExecutionHandler handler) {//表示当拒绝处理任务时的策略 4种选择
一般带 * 的自己设定就可以了
* 核心线程corePoolSize,
* 最大线程maximumPoolSize,
* 普通线程保持时间poolSelfMaintenTime,
* 时间单位TimeUnit.SECONDS,
队列选择new ArrayBlockingQueue<Runnable>(blockingQueueSize),
选用的线程工厂new MyThreadFactory(),【继承接口java.util.concurrent.ThreadFactory;】
拒绝处理任务时的策略new ThreadPoolExecutor.AbortPolicy());