2010-11-26 29 views
2

假设两个异步操作尝试读取或写入给定文件夹上的同一文件。 iOS如何处理这个问题?操作是否排队?该应用程序崩溃?该文件被损坏?iphone - 文件系统如何响应同时访问同一个文件?

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

你们可以给我一个提示吗?

谢谢。

回答

1
+0

呃,你认为“它应该失败”的基础是什么? – 2010-11-26 04:11:34

1

最可能的答案是“该文件被损坏”。操作系统将不会做任何事情来防止多个线程同时写入文件,并且如果他们正在写入文件的重叠部分,则所有投注都将关闭。

所以,你最好的办法是强制你自己排队访问文件。有很多方法可以做到这一点。在较低的级别上,您可以使用NSLock来防止同时访问,或者您可能希望使用调度队列。 Julio的答案提到的Concurrency Programming Guide是一个很好的参考。