3

我最近在 Smack 论坛的一篇文章中读到

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

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

4

2 回答 2

1

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

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

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

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

或者它只是一个恰好在 Tomcat 中运行的 webapp?如果是这种情况,那么我认为没有任何根本问题。如果没有线程,您的 Smack 客户端将无法与服务器通信。

于 2009-04-10T06:37:13.453 回答
0

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

于 2009-04-10T04:13:47.073 回答