Jsp 客户端请求是否会在服务器端创建新线程?

Jsp 客户端请求是否会在服务器端创建新线程?,jsp,servlets,Jsp,Servlets,在B/S web系统(J2EE、Jsp、servlet)中,如果用户a和用户B同时单击相同的按钮 他们是否在服务器端创建两个新线程 如果在该按钮事件中调用静态方法,那么两个新线程是否会同时访问该静态方法 如果是这样,我应该关心线程安全问题吗 如果有人能给我解释一下,我将不胜感激。据我所知,这将是一个IO问题。是否创建新线程取决于服务器的工作方式。但实际上,大多数商业web系统都会维护自己的线程池,其中存在一定数量的线程(数量取决于服务器的配置和硬件),一旦客户机向服务器发送新请求,它将位于生产者

在B/S web系统(J2EE、Jsp、servlet)中,如果用户a和用户B同时单击相同的按钮

他们是否在服务器端创建两个新线程

如果在该按钮事件中调用静态方法,那么两个新线程是否会同时访问该静态方法

如果是这样,我应该关心线程安全问题吗


如果有人能给我解释一下,我将不胜感激。据我所知,这将是一个IO问题。是否创建新线程取决于服务器的工作方式。但实际上,大多数商业web系统都会维护自己的线程池,其中存在一定数量的线程(数量取决于服务器的配置和硬件),一旦客户机向服务器发送新请求,它将位于生产者通道(如果使用NIO),如果存在任何消费者线程,则获得空闲时间,它将接管此请求并启动此请求的程序

建议您可以看看IO协议,以及一些常用的web结构,如Netty、Jetty等

以下是一些可能有助于您解决问题的链接:


据我所知,这将是一个IO问题。是否创建新线程取决于服务器的工作方式。但实际上,大多数商业web系统都会维护自己的线程池,其中存在一定数量的线程(数量取决于服务器的配置和硬件),一旦客户机向服务器发送新请求,它将位于生产者通道(如果使用NIO),如果存在任何消费者线程,则获得空闲时间,它将接管此请求并启动此请求的程序

建议您可以看看IO协议,以及一些常用的web结构,如Netty、Jetty等

以下是一些可能有助于您解决问题的链接:


因此,无论线程是否为新线程,都会有两个线程处理用户a和b的请求。因此,有可能两个线程同时调用静态方法。如果静态方法不同步,就会出现一些问题。那么您的问题是关于由多个并行线程调用的静态函数的同步情况?然后我认为你需要做的只是保证共享变量只能由单个线程编辑…实际上我仍然怀疑你的主要问题是…是多线程还是锁争用问题?所以不管线程是否是新线程,将有两个线程处理用户a和b的请求。因此,有可能两个线程将同时调用静态方法。如果静态方法不同步,就会出现一些问题。那么您的问题是关于由多个并行线程调用的静态函数的同步情况?然后我认为你需要做的只是保证共享变量只能由单线程编辑…实际上我仍然怀疑你的主要问题是什么…是多线程还是锁争用问题?