据我所知和研究,synchronized
Java 中的关键字可以同步方法或代码块语句来处理多线程访问。如果我想在多线程环境中锁定文件以用于写入目的,我必须使用Java NIO 包中的类以获得最佳结果。昨天,我提出了一个关于处理文件 I/O 操作的共享 servlet 的问题,BalusC 的注释对解决方案很有帮助,但是这个答案中的代码让我感到困惑。我不是在要求社区“烧掉那个帖子”或“让我们对他投反对票”(注意:我没有投反对票或其他任何事情,我没有反对答案),我要求解释代码片段是否可以被认为是一种好的做法
private static File theFile = new File("theonetoopen.txt");
private void someImportantIOMethod(Object stuff){
/*
This is the line that confuses me. You can use any object as a lock, but
is good to use a File object for this purpose?
*/
synchronized(theFile) {
//Your file output writing code here.
}
}