栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在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)) {    .... }         }      } }


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/498197.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号