Java createTempFile是线程安全的吗?

Java createTempFile是线程安全的吗?,java,file-io,thread-safety,temporary-files,Java,File Io,Thread Safety,Temporary Files,我正在使用Java6 调用createTempFile(类java.io.File)的两个线程是否可能获得相同的临时文件?方法File.createTempFile实际上创建了该文件。线程将只返回它自己创建的文件名。(您可以查看源代码以查看此信息)获得答案的最佳方法是查看源代码。起初,createTempFile中没有任何同步,但要生成临时文件名,需要使用线程安全的SecureRandom。 然后,除非你真的很倒霉,否则你的文件总是会有不同的名称 最重要的是,createTempFile实现正在

我正在使用Java6


调用createTempFile(类java.io.File)的两个线程是否可能获得相同的临时文件?

方法File.createTempFile实际上创建了该文件。线程将只返回它自己创建的文件名。(您可以查看源代码以查看此信息)

获得答案的最佳方法是查看源代码。起初,createTempFile中没有任何同步,但要生成临时文件名,需要使用线程安全的SecureRandom。 然后,除非你真的很倒霉,否则你的文件总是会有不同的名称


最重要的是,createTempFile实现正在循环,生成新的文件名,直到文件被创建。当然,文件创建是委托给本机文件系统操作的,我们可以假设它是线程安全的。

这种可能性是存在的,但它太遥远了,考虑到它是一种浪费精力的行为。。。如果一个应用程序需要担心这种保持其正确功能的可能性,那么我会认为这是一种迹象,表明它的设计有问题。

可能,是的。可能-不,几乎肯定不会。