[英]Create and write a file in one atomic operation on OS level
所以我需要创建一个文件,然后写一行,这必须是原子的。 因此,在初始化时,没有其他进程可以修改文件。
我有一个想法,在锁定时锁定不同的东西,然后执行操作然后释放锁定以让另一方进入。但这非常繁琐,也可能是错误的,因为创建锁定并获取它可能是不是原子的(我猜)。 没办法其他办法吗?
我建议您编写临时文件,然后将其重命名为您的文件。 我不确定这个操作是在java中实现的所有操作系统的原子,但至少在Unix上你有机会,因为我认为它使用与原子的mv
相同的调用。
我想,它不会是真正的Windows原子。 对于大多数应用来说,它几乎是“原子的”。
如果你想要一些可以安全防范其他进程的东西,我建议你阅读http://en.wikipedia.org/wiki/File_locking并利用JNI进入操作系统级别。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.