今天Linux环境上遇到个报错,经查日志发现两个JVM进程里几乎同时对同一个文件进行相同操作的重命名(File.renameTo)都返回true。 基本确定这方法是个非同步的操作了,刷新了认知.... 因为这方法底层是个native方法,所以不容易分析也不容易造出同样的问题场景,有谁同样遇到过,求分析
1条回答 默认 最新
- 被遗忘的DIA 2024-05-07 13:58关注
这与是不是Native方法有关系吗?
进程就是用来隔离资源用的。2个无关联的进程什么都没有做,自然是没法同步彼此的。需要调用操作系统API才能跨进程同步,例如Linus的chattr
命令,就可以用来锁定文件。chattr(1) - Linux manual page https://www.man7.org/linux/man-pages/man1/chattr.1.html解决 无用评论 打赏 举报