通过阅读源码知道,当apply()和commit()执行了commitToMemory()时,mDiskWritesInFlight会加1,代表写入内存的数据数量加1,当每次创建一个writeToDiskRunnable时,mDiskWritesInFlight会减1。 因此mDiskWritesInFlight为1就代表前面的提交到内存的修改都已经提交的磁盘上了。此时如果是来自commit,写磁盘任务就直接在当前线程即主线程里执行了,对应[注释30]。然而如果此时是来自commit,但mDiskWritesInFlight不等于1,则执行[注释31]和 apply 一样添加到 QueueWork 里,其实就是异步执行了。 这句话是不是前后矛盾了
点赞 评论

相关推荐

10-27 02:29
已编辑
门头沟学院 嵌入式工程师
牛客72783561...:简历不是这么写的,你这两个项目只说了用到了什么技术,却没说取得了什么成果,在我看来这就是你自己做的一个demo,没有价值。你为什么不写你电赛国二的那个项目?
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务