如何在Java中以线程安全的方式使用mkdirs?
在遇到mkdirs()的问题并且在互联网上闲逛之后,我得到的印象是mkdirs()存在线程安全问题。
当多个线程可能尝试创建类似的文件结构时,有没有办法确保正确创建目录?
谢谢
(在我的情况下,我将在Android上使用此功能)
没有找到相关结果
已邀请:
5 个回复
遣莫捅炭
但是,这似乎效率低下,仍然可能存在问题。那么,为什么不简单地这样做:
简单,但它的工作原理。 编辑:经过一番思考后,该示例可能会滞后于遗忘并可能导致线程锁定。所以,这可能是一个更好的主意:
当然,只有在你可能导致线程锁定的线程中,并且只要它不是高优先级的情况时,才会建议这样做。把它放在那里。
厘恼轨
如果目录已存在,则该方法会提前返回。如果它不存在,则只有一个线程会尝试创建它。
庞协腿宛炯
和
轻松发布调用mkdirs到工作线程的
。当你完成制作目录时,你可以调用Looper.quit()来处理最后发布的
后的线程。
的文档有示例代码,显示了这是多么微不足道的事情。
殿虫
测试:
雇砰