繁体   English   中英

Android中的并发文件访问

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM