我们可以在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
关键字作为其语言的一部分。实际上,您可能想从这里开始。