Open z-shu07 opened 8 years ago
所有的 memoryCache 操作都是同步的,所以如果用 YYCache 或者 YYMemoryCache 的接口,应该不会出现这种情况。如果只用 YYDiskCache,那这个可能难以避免,你说的那种办法,实现起来很麻烦而且对性能也会有影响。
如果你自己封装了异步调用的方法,那可以把所有读取和写入操作都放到一个 serial queue 里,这样也能避免数据不同步的问题。
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0);
这样就是导致我这个问题出现的原因么?
这个 queue 是并发的...
我不清楚你的使用方法,贴一下你的相关代码看看吧。
由于使用的异步存储的方法,但是经常发生执行读区操作的同时执行存储操作导致了读区数据为 nil,有没有办法 在读区操作执行时 如果正在写入, 等待写入结束再读取,而不是返回 nil