假设我有一个(库存)android 4。x平板电脑通过USB连接到微控制器板。该板能够访问sd卡作为USB大容量存储器和读写文件在卡片上。现在平板电脑上应该有一个应用程序,它可以像电路板一样读写相同的文件。因此,在板子和应用程序之间存在同时的读/写文件访问。
避免数据不一致等。当应用程序读/写文件时,我会使用独占FileLock。现在我的问题是,如果FileLock"级别足够低",也可以在这种情况下工作,并防止数据不一致?
THX
虽然使用FileLock
可以确保两个应用程序不能同时写入文件,但应用程序逻辑可能会破坏该方案。你仍然需要正确地编码。特别是,如果一个应用程序读取文件,进行更改,然后"等待"获得文件锁以写入文件,那么它可能会将"旧"信息写回文件。
在FileLock的文档中找到:
锁旨在成为真正的平台操作系统文件锁,因此VM持有的锁将对其他操作系统进程可见。
我猜通过USB访问SDCard是由一些操作系统的进程控制的,所以锁应该对微控制器也是可见的。