我应该启动一个新线程来在我的服务器上获取 HTTP 响应吗?

Should I start a new thread to get HTTP response on my server?

我有一个 Glassfish 服务器,我希望它的负载相当大。例如,我有 RESTful 服务,我想在其中一种方法中向 Google API 发出请求。我应该创建一个新线程来完成这样的工作吗?

不,您应该避免在 Java EE 世界中手动管理任何线程。这项工作应由容器(在本例中为 Glassfish)提供,尤其是对于 HTTP 响应。

在 EJB 内部甚至被禁止:

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.

(EJB 3.1 规范,第 599 页)

在某些情况下,您可能需要在 Web 应用程序中手动执行某些操作,但通常应避免这样做。

另请参阅:

  • Thread creation in JavaEE EJB/Web containers
  • Java EE specification and multi threading