iOS FileManager的线程安全是什么意思?

4
我正在阅读/编写多线程iOS应用程序中的文件和文件夹。我希望这些操作是线程安全的。
NSFileManager的文档说:"您应该创建一个唯一的文件管理器对象实例,将您的委托分配给该对象,并使用该文件管理器来启动您的操作。"
这些类型的功能被使用(分类属于我):
"Writing" 操作:
- NSData writeToFile: options:NSDataWritingAtomic - NSFileManager createDirectoryAtPath - NSFileManager createFileAtPath - NSFileManager removeItemAtPath
"Reading" 操作:
- NSFileManager fileExistsAtPath - NSFileManager subpathsAtPath
我在以下选项之间进行选择以确保线程安全:
1. 创建两个NSFileManagers:一个用于“writing”操作,另一个用于“reading”操作。我仅调用原子写入,因此NSFileManager应通过自身保护数据一致性。 2. 添加互斥锁,允许同时进行读取/读取,但不允许同时进行读取/写入或写入/写入。
请问哪个选项更正确/适当?
1个回答

3
根据同一份Apple文档: “可以安全地从多个线程调用共享的FileManager对象的方法。” 如果您使用的是“共享的FileManager对象”(而不是实例),则具有内置的线程安全性。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接