基于Java的网站/应用程序是否需要多线程

时间:2013-08-01 06:44:14

标签: java

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

3 个答案:

答案 0 :(得分:2)

Web服务器通过其调用应用程序的Java Servlet API已经处理了使用多个线程的用户的请求。因此,Java Web应用程序已默认为多线程

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

答案 1 :(得分:1)

框架和应用程序服务器已经为您提供了多线程。没有特别的步骤可以让几个用户同时使用它。

制作一个webapp所以一次只能访问一个用户需要一些工作,并且没有理由为什么有人想要这样做。

所以这里没有什么可担心的。

答案 2 :(得分:0)

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

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