<mbean code="org.jboss.util.threadpool.BasicThreadPool"
name="jboss.system:service=ThreadPool">
<attribute name="Name">JBoss System Threads</attribute>
<attribute name="ThreadGroupName">System Threads</attribute>
<attribute name="KeepAliveTime">60000</attribute>
<attribute name="MaximumPoolSize">10</attribute>
<attribute name="MaximumQueueSize">1000</attribute>
<attribute name="BlockingMode">run</attribute>
</mbean>
上面是JBOSS的默认配置,其中:
- Name:在pool中threads的名称
- ThreadGroupName:Thread group的名称
- KeepAliveTime:当threads空闲时,保持活动的最长时间(单位毫秒)
- MaximumPoolSize:可以并发的thread的最大数目
- MinimumPoolSize:可以并发的thread的最小数目
- MaximumQueueSize:允许等待的request的最大数目
- BlockingMode:等待队列满了以后的处理方式
- abort - 抛出RuntimeException异常
- run - 请求的thread直接执行任务
- wait - 请求的thread等待队列的空闲。(使用这个需要注意:MinimumPoolSize必须设置大于0)
- discard - 请求直接丢弃
- discardoldest - 检查是否有任务将要结束并需要请求新的任务,如果没有就执行这个请求的任务
所以在部署的时候需要根据实际情况合理的设置各个参数。
设置可以直接修改启动模式下的conf/jboss-service.xml中对应的部分,这种修改需要重新启动JBOSS。
也可以在运行时刻通过控制台修改:jmx-console下选择jboss.system中的service=ThreadPool ,然后修改对应的值,但重新启动后该设置失效。