[英]Concurrent file access in Android
我知道许多操作系统在文件系统上执行某种锁定以防止视图不一致。 Java和/或Android是否保证文件访问的线程安全性? 在我继续编写并发代码之前,我想尽可能多地了解这一点。
如果我错过了一个回答类似的问题,请随时关闭此主题。 谢谢。
Android建立在Linux之上,因此继承了Linux的文件系统语义。 除非您明确锁定文件,否则多个应用程序和线程可以打开它以进行读/写访问。 除非您确实需要跨进程文件同步,否则我建议使用普通的Java同步原语来仲裁对文件的访问。
正常的读/写功能(FileInputStream等)不提供任何线程安全AFAIK。 要实现线程安全,您需要使用FileChannel 。 这看起来像是这样的:
FileInputStream in = new FileInputStream("file.txt");
FileChannel channel = in.getChannel();
FileLock lock = channel.lock();
// do some reading
lock.release();
我会阅读文件锁文档 ,并注意线程!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.