我们可以在C#中实现它,如下所示:


void readFile(文件文件)
{
      互斥体MutexForFile = null;
      布尔mutexCreateFlag; //根据是否存在mutext或将其作为当前调用的一部分来返回true / false
      MutexForFile = new Mutex(false,file.FullName.GetHashCode()。ToString(),输出为MutexCreateFlag);
      如果(!mutexCreateFlag)
          抛出新的Exception(“ File UsedByOtherProcess”);
       其他
       {
           MutexForFile .WaitOne();
           //同步访问资源
           ProcessFile(fileInfo:file);
           MutexForFile .ReleaseMutex();
       }
 }


不要考虑代码的相关性,例如我给出的

这样的东西在Java中会成为可能吗?

最佳答案

是的,您在对象上创建了一个锁。

http://download.oracle.com/javase/tutorial/essential/concurrency/newlocks.html

Java还具有synchronized关键字作为其语言的一部分。实际上,您可能想从这里开始。

09-10 14:46