Java 是否要在多个进程之间同步文件创建?

Java 是否要在多个进程之间同步文件创建?,java,file,process,synchronization,Java,File,Process,Synchronization,我有一个robotframework插件,它可以同时运行多个进程,但问题是它会创建屏幕截图,一个进程可能会重写另一个进程已经拍摄的屏幕截图 我做了这样的事 File path; while (true) { path = new File(logdir, normalizeFilename(filename)); if (path.exists()) continue; try { path.createNewFile();

我有一个robotframework插件,它可以同时运行多个进程,但问题是它会创建屏幕截图,一个进程可能会重写另一个进程已经拍摄的屏幕截图 我做了这样的事

File path;
while (true) {
    path = new File(logdir, normalizeFilename(filename));
    if (path.exists())
        continue;
    try {
        path.createNewFile();
        break;
    } catch (IOException e) {
        e.printStackTrace();
    }
}

但我不确定这是否足够,只要我只有2个进程,就没有问题,但可能会有更多,path.createNewFile();当已经有fail available时不会给出任何错误,在path.exists()返回false之后,由于名称中的时间戳,不太可能创建相同的文件,但我仍然认为可能存在问题,我不知道如何同步进程。

是否可以在启动进程时为每个进程指定一个唯一的编号,作为一个参数?如果是这样,您将能够在每个进程中使用它,并编写诸如“name.1.timestamp.ext”、“name.2.timestamp.ext”之类的文件。。。因此,没有一个进程的文件实际命名为与现有文件类似的名称。此代码位于插件内部,它覆盖第三方框架中的方法,我不想更改框架代码以将参数传递给我的插件