为什么不鼓励在Java EE容器中生成线程?

LiorH:

关于Java EE开发的第一件事是,我不应该在Java EE容器中生成自己的线程。但是当我考虑它时,我不知道原因。

您能清楚地解释为什么不鼓励这样做吗?

我确信大多数企业应用程序都需要某种异步作业,例如邮件守护程序,空闲会话,清理作业等。

因此,如果确实不应该产生线程,那么在需要时正确的方法是什么?

罗宾:

不建议这样做,因为环境中的所有资源都应由服务器进行管理,并可能由服务器进行监视。同样,使用线程的许多上下文通常都附加到执行线程本身。如果仅启动自己的线程(我相信某些服务器甚至不允许),则该线程将无法访问其他资源。这意味着您无法获取InitialContext,也无法执行JNDI查找来访问其他系统资源,例如JMS连接工厂和数据源。

有一些方法可以“正确”地执行此操作,但这取决于所使用的平台。

commonj WorkManager对于WebSphere和WebLogic以及其他工具都是通用的

更多信息在这里

和这里

也有些重复这个从今天上午

更新:请注意,此问题和答案与2009年Java EE的状态有关,此后情况有所改善!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章