如何在Java Servlet中同步文件访问?

如何在Java Servlet中同步文件访问?,第1张

如何在Java Servlet中同步文件访问

我想使用

synchronized(){}
关键字也将不起作用,因为我想同步文件系统访问而不是变量/对象访问。

使用

synchronized
可以工作。您假设如果要控制从多个线程对对象 X的 访问,则必须
synchronized
在该对象上使用。你不知道
您可以
synchronized
任何 对象上使用,前提是所有访问都使用同一对象。

实际上,通常 最好 使用单独的

private
锁对象进行同步,因为这样一来,类外的代码就无法在锁上进行同步。

因此,您可能会有类似的情况,每个共享文件都有一个实例:

 public class SharedFile {      private final File path;      private final Object lock = new Object();      public SharedFile(File path) {         this.path = path;      }      public void process(.....) throws IOException {         synchronized(lock) { try(InputStream = new FileInputStream(path)) {    .... }         }      } }


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5490318.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存