iphone - 文件系统如何响应同时访问同一个文件?

时间:2010-11-26 03:53:01

标签: iphone

假设两个异步操作尝试在给定文件夹上的同一文件中读取或写入。 iOS如何处理?操作是否排队?该应用程序崩溃了?文件被破坏了?

如果由程序员来处理这个问题,我在哪里可以找到关于如何处理竞争条件,队列等的信息或示例?

你们能给我一个暗示吗?

感谢。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

最可能的答案是“文件被破坏”。操作系统不会做任何事情来阻止多个线程同时写入文件,如果他们写入文件的重叠部分,所有的赌注都会关闭。

因此,最好的办法是在访问文件时强制执行自己的排队。有很多方法可以解决这个问题。在较低级别,您可以使用NSLock来阻止同时访问,或者您可能希望使用Dispatch Queue。 Julio的答案中提到的Concurrency Programming Guide是一个很好的参考。