一尘不染

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

java

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

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

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

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


阅读 350

收藏
2020-02-28

共1个答案

一尘不染

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

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

2020-02-28