信的人

你若能信,在信的人,凡事都能。

关于微软OS创建文件及文件夹重命名并发问题

之前做了一个项目,涉及系统IO,因为种种原因不能使用DB来做并发处理,当时就利用变更文件夹名的方式来抢占文件。多个程序同时将一个文件夹重命名,成功的那个就占用当前文件夹并处理,失败的程序重命名下个文件夹,直到成功为止,以此循环。

压力测试也做过了,没有什么问题,最终就上线了。问题出现了,大数据量作业时,极端情况会出现两个程序同时重命名成功的情况。后续经过测试发现同时创建文件(注意这里指的是文件,并不是文件夹,同时创建文件夹没有测试过)永远不会出现同时成功的情况。以同时创建文件的方式实践了好多年,大数量级的数据都处理过,没发现问题。

其中的原因涉及os底层(这里用的是微软操作系统)没有咨询过厂家,或许有意为之或许是bug。

最终总结下:在微软操作系统中通过代码同时将文件夹重命名可能同时成功,不会抛异常;但是同时创建文件永远不会同时成功。在<=win7,<=server 2008 版本测试,后续版本os没有验证,估计也一样


阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

关于微软OS创建文件及文件夹重命名并发问题

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭