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

时间:2009-04-10 03:45:45

标签: java multithreading spring concurrency xmpp

我最近在a post读到了Smack论坛

  

在Java EE服务器中启动守护程序线程是一个很大的问题

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

2 个答案:

答案 0 :(得分:1)

是的,XMPPConnection创建了两个线程 - 一个用于监听/读取,一个用于写入。但是这些只有XMPPConnection实例才有效,我认为这不是永远的。

  

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

你在编写符合规范的EJB吗?如果是这样,则适用。规范说不要这样做。 EJB 2.1规范:

  

“企业bean不得尝试   管理线程。企业bean   一定不要试图开始,停止,   暂停,或恢复一个线程,或   更改线程的优先级或名称。   企业bean不得尝试   管理线程组。“

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

答案 1 :(得分:0)

我只使用Smack API进行客户端连接,这些都是独立的程序。首先,您应该重新审视J2EE容器中Smack API的选择(或目的)。