Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在servlet操作中同步请求_Java_Multithreading_Struts - Fatal编程技术网

Java 如何在servlet操作中同步请求

Java 如何在servlet操作中同步请求,java,multithreading,struts,Java,Multithreading,Struts,我有一个servlet操作方法。如果一个请求出现并尝试执行某项操作。如果有第二个请求,我想阻止它,直到第一个请求完成。我如何才能做到这一点。您可以使用标准的Javasynchronized块来实现这一点。大概是这样的: synchronized(this) { // do some stuff } 但是,我强烈建议不要在servlet中执行类似操作,因为这可能会导致严重的性能影响。servlet应该是无状态的,因此并发请求不应该相互影响。您可以使用标准的Javasynchronized块来

我有一个servlet操作方法。如果一个请求出现并尝试执行某项操作。如果有第二个请求,我想阻止它,直到第一个请求完成。我如何才能做到这一点。

您可以使用标准的Java
synchronized
块来实现这一点。大概是这样的:

synchronized(this) {
  // do some stuff
}

但是,我强烈建议不要在servlet中执行类似操作,因为这可能会导致严重的性能影响。servlet应该是无状态的,因此并发请求不应该相互影响。

您可以使用标准的Java
synchronized
块来实现这一点。大概是这样的:

synchronized(this) {
  // do some stuff
}
但是,我强烈建议不要在servlet中执行类似操作,因为这可能会导致严重的性能影响。servlet应该是无状态的,因此并发请求不应该相互影响。

您有两个选择:

  • 如果您的用户群有限且没有增长,建议您的servlet实现
    SingleThreadModel
    接口。这确保servlet一次只处理一个请求

  • 如果您的用户群正在增长,并且需要扩展,建议使用
    同步块
    。在这里,您将只同步可能导致数据模糊的“代码块”。这样做的目的是减少要同步的代码量,这样就不会导致任何性能问题

  • 您有两个选择:

  • 如果您的用户群有限且没有增长,建议您的servlet实现
    SingleThreadModel
    接口。这确保servlet一次只处理一个请求

  • 如果您的用户群正在增长,并且需要扩展,建议使用
    同步块
    。在这里,您将只同步可能导致数据模糊的“代码块”。这样做的目的是减少要同步的代码量,这样就不会导致任何性能问题