OGeek|极客世界-中国程序员成长平台

标题: ios - 如何知道另一个线程是否正在访问资源? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 05:34
标题: ios - 如何知道另一个线程是否正在访问资源?

我有一个线程将文件写入文档目录,而另一个线程将尝试访问该文件并检查它是否可用以便使用它,否则它将使用临时变量。我的问题是如何测试其他线程是否已完成文件写入,或者在我检查文件时是否正在写入。



Best Answer-推荐答案


您可以使用辅助文件强制写入原子操作,而不是检查完成。

如果您使用支持辅助文件的 API 编写文档,类似于 [NSString writeToFile:... atomically:YES encoding:... error:...],则更改就像拨动开关一样简单。

如果您自己编写文件,请先写入一个不同名称的文件,关闭该文件,然后将其重命名为所需的名称。

例如,在将文档写入 @"myfile.doc" 的调用中,您可以将文档写入 @"myfile.doc_aux",然后将其重命名为 @"myfile.doc"。如果第二个线程在写入完成之前检查 @"myfile.doc" 是否存在,则检查将失败。但是,当检查成功时,您可以确定文件已写入完成。

关于ios - 如何知道另一个线程是否正在访问资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20269535/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4