我有一个线程将文件写入文档目录,而另一个线程将尝试访问该文件并检查它是否可用以便使用它,否则它将使用临时变量。我的问题是如何测试其他线程是否已完成文件写入,或者在我检查文件时是否正在写入。
您可以使用辅助文件强制写入原子操作,而不是检查完成。
如果您使用支持辅助文件的 API 编写文档,类似于 [NSString writeToFile:... atomically:YES encoding:... error:...]
,则更改就像拨动开关一样简单。
如果您自己编写文件,请先写入一个不同名称的文件,关闭该文件,然后将其重命名为所需的名称。
例如,在将文档写入 @"myfile.doc"
的调用中,您可以将文档写入 @"myfile.doc_aux"
,然后将其重命名为 @"myfile.doc"
。如果第二个线程在写入完成之前检查 @"myfile.doc"
是否存在,则检查将失败。但是,当检查成功时,您可以确定文件已写入完成。
关于ios - 如何知道另一个线程是否正在访问资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20269535/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |