我了解到new File("path")
并不会在硬盘上创建一个文件。但是在API中写道:
该类的实例可以或者不可以表示实际的文件系统对象,比如文件或目录。如果它表示这样一个对象,则该对象驻留在分区中。分区是文件系统的操作系统特定存储部分。单个存储设备(例如物理磁盘驱动器、闪存、CD-ROM)可能包含多个分区。
那么我很好奇,在多线程环境下编写这样的代码是否安全:
File file = new File( "myfile.zip" );
// do some operations with file (fill it with content)
file.saveSomewhere(); // just to denote that I save it after several operations
例如,线程1来到这里,创建一个实例并开始进行操作。同时,线程2中断它,创建与其相同名称(myfile.zip)的实例并执行其他操作。之后它们按顺序保存文件。
我需要确保它们不使用同一个文件,并且最后一个保存文件的线程覆盖了之前的线程。
File
对象,因此它们不是线程安全的。 - Peter LawreyFile
实例本身是线程安全的,但这并不是你实际上要问的。 - user207421