多用户 Java 应用程序如何真正工作

我敢肯定,这个问题相当广泛,但我相信我并不完全了解多用户应用程序的工作原理,我想对这个主题进行一些澄清,或者想知道在哪里可以找到更多信息(不确定我知道要做什么)搜索)

我了解开发方面,但是一旦您将代码部署到服务器,它如何处理多个用户?例如,如果我有一个单例类,那么该类只会在服务器上实例化一次……但是该类需要同时被多个用户使用,这意味着类中的变量可能需要不同每个用户,这是如何在幕后实现的?

只是每个不同的用户将在不同的线程上访问该类的概念吗?如果是这样,这是否意味着整个应用程序需要是线程安全的?


30秒到达战场
浏览 144回答 1
1回答

慕田峪9158850

让我直接解释一下,并从这一点开始将代码部署到服务器后,它如何处理多个用户?---->是的,每个Web应用程序或企业应用程序都应该部署在服务器上,Web服务器上的Web应用程序就像tomcat企业应用程序一样WebSphere。每个服务器都会有多个线程的 servlet 容器(在 tomcat 中默认为 200)每个输入请求将由单独的线程处理(因此多个请求可以同时执行)如果我有一个单例类,那么该类只会在服务器上实例化一次---> 是的,单例类每个服务器只有一个实例,因此多个线程可以同时访问同一个对象,这可能导致数据不一致,这是开发人员负责处理此职责的责任。单例类的主要问题是class (instance or static)使用 setter 方法的级别变量,因为两个线程可以同时访问同一个对象并更改值,在实时场景中,单例设计模式用于Connection Pool对象注意局部变量在多线程中是最好的,因为每个线程都有自己的堆栈,并且它们不能被任何其他线程访问。但是这个类需要被多个用户同时使用,这意味着类中的变量对于每个用户来说可能是不同的---> 将请求属性保存到对象Models or POJO中会出现,这些是prototype为每个请求创建新对象。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java