应用程序容器中的守护线程

发布于 2024-07-16 15:58:35 字数 327 浏览 3 评论 0原文

我最近在 Smack 论坛的一篇帖子中读到

在 Java EE 服务器中启动守护线程是一个很大的禁忌

基本上 Smack 的 XMPPConnection 会启动一个守护线程来监视传入数据 & 另一个分别从 jabber 服务器发送传出数据/向 jabber 服务器发送传出数据。 在这种情况下使用守护线程来监听写入/读取是否合理?

I read in a post to the Smack forum recently that

Starting daemon threads in a Java EE server is a big no no

Basically Smack's XMPPConnection starts one daemon thread to monitor incoming data
& another to send outgoing data from/to the jabber server respectively. Is it reasonable to use daemon threads to listen for write/reads in this scenario ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

ζ澈沫 2024-07-23 15:58:36

是的,XMPPConnection 创建两个线程——一个用于监听/读取,一个用于写入。 但这些仅与 XMPPConnection 实例一样长,我认为这不会永远存在。

“在 Java EE 服务器中启动守护线程是一个很大的禁忌”

您是否正在编写符合规范的 EJB? 如果是这样,那么这适用。 规范说不要这样做。 EJB 2.1 规范:

“企业 bean 不得尝试
来管理线程。 企业bean
不得尝试启动、停止、
挂起或恢复线程,或
更改线程的优先级或名称。
企业 Bean 不得尝试
管理线程组。”

?如果是这种情况,那么我没有看到任何根本问题。如果没有线程,您的 Smack 客户端将无法与服务器通信。

Yes, XMPPConnection creates two threads--one for listening/reading and one for writing. But these only live as long as the XMPPConnection instance, which I assume is not forever.

"Starting daemon threads in a Java EE server is a big no no"

Are you writing spec compliant EJB? If so, then this applies. The spec says don't do it. EJB 2.1 specification:

"The enterprise bean must not attempt
to manage threads. The enterprise bean
must not attempt to start, stop,
suspend, or resume a thread, or to
change a thread’s priority or name.
The enterprise bean must not attempt
to manage thread groups."

Or is it just a webapp that happens to be running in Tomcat? If this is the case, then I do not see any fundamental problem. Without the threads, your Smack client would be unable to communicate with the server.

妳是的陽光 2024-07-23 15:58:36

我仅将 Smack API 用于客户端连接,这是独立的程序。 首先,您应该重新审视 J2EE 容器内 Smack API 的选择(或目的)。

I have used Smack API for client connections only which are stand alone programs. First you should revisit the choice (or purpose) of Smack API inside a J2EE container.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文