在 Java EE 6 中,我无法控制线程池,并且在不违反规范的情况下无法创建自己的线程池(使用 java.concurrent)。
所以我的问题是,如果我通过带@Asynchronous
注释的方法启动 10000 个线程,服务器是否会以任何方式将其排入队列,或者它是否会尝试一次全部生成(这会非常糟糕)?
或者我应该更好地使用任何特定于 jboss 的功能吗?
我还查看了基于计时器(quarz, @Schedule
)的解决方案,这些解决方案并不完全符合我的需要。
在 Java EE 6 中,我无法控制线程池,并且在不违反规范的情况下无法创建自己的线程池(使用 java.concurrent)。
所以我的问题是,如果我通过带@Asynchronous
注释的方法启动 10000 个线程,服务器是否会以任何方式将其排入队列,或者它是否会尝试一次全部生成(这会非常糟糕)?
或者我应该更好地使用任何特定于 jboss 的功能吗?
我还查看了基于计时器(quarz, @Schedule
)的解决方案,这些解决方案并不完全符合我的需要。
我将完整引用的JBoss 社区论坛的学分:
EJB3 异步调用的线程池大小由JBOSS_HOME/server/<servername>/deployers/jboss-ejb3-async-deployer.jar/META-INF/ejb3-async-deployer-jboss-beans.xml
文件中定义的 ExecutorService 控制:
<bean name="org.jboss.ejb3.async.ExecutorService" class="org.jboss.threads.JBossScheduledThreadPoolExecutor">
<constructor>
<parameter>10</parameter>
</constructor>
</bean>
如您所见,默认值为 10,但您可以更改它。
PS:谷歌是你的朋友:)。第一个结果搜索jboss @asynchronous size