2

我是 Java 初学者,我的问题是如果我开发 Java Web 应用程序(使用 Spring 框架),业务逻辑是否需要多线程?这样多人可以同时点击应用程序?

4

3 回答 3

2

Web 服务器通过 Java Servlet API 调用您的应用程序,已经使用多个线程处理来自用户的请求。因此,默认情况下 Java Web 应用程序已经是多线程的

业务逻辑也应该是多线程的吗?在大多数情况下,没有。建议是使业务逻辑无状态,以便不同请求之间不共享可变对象。否则,您将需要手动处理并发(因为 Java Web 应用程序是多线程的),这很难。常见的解决方案是只通过一个数据库共享状态,依靠数据库的事务隔离来避免不同的请求发生冲突。

于 2013-08-01T07:39:15.513 回答
1

框架和应用程序服务器已经为您提供了多线程。无需特殊步骤即可使其可供多个用户同时使用。

制作一个 web 应用程序,使其一次只能由一个用户访问,这需要一些工作,而且没有任何人想要这样做的理由。

所以这里没有什么好害怕的。

于 2013-08-01T06:47:16.023 回答
0

答案取决于您要执行的业务逻辑类型。如果您必须在业务处理中执行一些不应该阻塞用户的异步操作,那么您很可能需要在用户继续使用您的应用程序时生成处理您的处理的工作线程。如果让用户等待/阻塞交互直到业务逻辑被处理是可行的,那么你的应用程序中就不需要额外的多线程。

请注意,多线程实现通常是一项乏味的工作并且被低估了。它需要对您可能正在使用的第三方框架的线程安全性有很好的了解,并且可能会导致不明显的错误。

于 2013-08-01T07:07:19.190 回答