【发布时间】:2013-08-16 10:54:22
【问题描述】:
我正在调用一个 Spring Web 服务,它需要大约 5 秒才能返回响应。 webservice 调用在部署到 websphere 之前发生在 Tomcat 容器中。 另一位开发人员告诉我,对这个服务的调用应该在一个单独的 java 线程中处理,因为它“让 JVM 在一行代码上停留太久的坏习惯”在这种情况下它停留在调用 Web 服务的代码。我不同意并认为如果 Web 服务需要 5 或 10 秒才能完成,那很好,将收到响应并且代码执行将照常继续。我说的对吗?
【问题讨论】:
-
是否有任何服务水平协议或非功能性要求指定响应时间?
-
@incomplete-co.de 不,5 - 10 秒是可接受的响应时间。所描述的“不良做法”的论点是技术性的,尽管我无法获得更多详细信息
-
@nos 什么只发生一次?
-
嗯,JVM 本身是多线程的,而您在 tomcat 中的应用程序也是多线程的。通过将执行推送到另一个线程,您正在阻塞另一个线程。没有区别。如果您不需要异步行为,则没有理由将其设为异步。
-
@nos 它发生不止一次,每天大约 3000 次
标签: java multithreading spring tomcat websphere