首页 >Java >java教程 >为什么在 Java EE 容器中不鼓励使用自定义线程?

为什么在 Java EE 容器中不鼓励使用自定义线程?

DDD
DDD原创
2024-12-09 18:41:12361浏览

Why Are Custom Threads Discouraged in Java EE Containers?

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

在 Java EE 开发中,通常不鼓励在容器中生成自定义线程。了解此禁令背后的基本原理有助于阐明最佳开发实践。

基本原理

Java EE 容器严格管理和监控其环境中的资源。创建自定义线程会破坏这种管理,因为它们缺乏对访问 JNDI 资源(如 JMS 连接工厂和数据源)所必需的特定于线程的上下文的访问权限。

替代方法

尽管需要异步任务,例如邮件分发和清理工作,在 Java EE 中有适当的方法来实现这一点容器:

  • Commonj WorkManager(用于 WebSphere 和 WebLogic): 这提供了一种托管和监视机制,用于生成可以访问所需上下文的线程。
  • Java EE 连接器架构(JCA):JCA 允许与外部资源适配器集成,提供用于管理计划任务或事件的接口
  • 消息驱动 Bean (MDB): MDB 充当异步事件侦听器,为消息处理提供容器管理的解决方案。
  • 异步 Servlet : Java EE 6 中引入的异步 servlet 可以在不阻塞请求的情况下处理长时间运行的任务

最佳实践的演变

请注意,在早期版本(大约 2009 年)中,不鼓励在 Java EE 容器中生成线程更为相关。此后,Java EE 的进步改进了对异步处理和托管线程池的支持。然而,了解历史上令人沮丧的根本原因对于理解和遵守推荐的开发实践仍然很有价值。

以上是为什么在 Java EE 容器中不鼓励使用自定义线程?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn