gpt4 book ai didi

java - Servlets 线程访问控制

转载 作者:行者123 更新时间:2023-12-02 07:21:03 25 4
gpt4 key购买 nike

Servlet 方法内的 friend ,该方法被调用dopost/doget 我有一个代码为

synchronized (this) 
{
String filePath="E:\\FSPATH1\\2KL06CS048\\";
System.out.println("Directory Created ????????????"+new File(filePath).mkdir());
}

那么上述 servlet 的多个线程是否可以同时进入上述代码块?

但是 Servlet LifeCycle Concept 表示只有一个 Servlet 实例,并且对于该 servlet 的每个请求,都会在该实例上创建一个线程。

其实我的要求是

  1. 发出请求(servlet 调用,该 servlet 的工作是在服务器中创建一个目录)
  2. 从 servlet 调用返回后,我将重命名创建的目录。
  3. 重命名时,另一个线程不得创建相同的目录并修改目录的内容,因为我想同步 servlet 中的某种代码

最佳答案

Q. 在由 dopost/doget 调用的 servlet 方法内,我的代码如下: synchronized (this) {}

---> Servlet Container(tomcat) 将为每个请求创建一个线程,因此每次您的 doGet() 和 doPost() 方法中都会有什么,将是各自线程本地的。因此您不需要再次同步this。所以你的想法是完全错误的。

关于java - Servlets 线程访问控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14233869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com