zie*_*ikk 10 java filesystems concurrency android
我知道许多操作系统在文件系统上执行某种锁定以防止视图不一致.Java和/或Android是否保证文件访问的线程安全性?在我继续编写并发代码之前,我想尽可能多地了解这一点.
如果我错过了一个回答类似的问题,请随时关闭此主题.谢谢.
hac*_*bod 10
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();
Run Code Online (Sandbox Code Playgroud)
我会阅读文件锁文档,并注意线程!
归档时间: |
|
查看次数: |
3524 次 |
最近记录: |