我应该启动一个新线程来在我的服务器上获取 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
我有一个 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