两个申请之间相互排斥

时间:2015-09-16 06:46:43

标签: java android deadlock synchronized

我想编写两个适用于单个文本文件的Android应用程序。

第一个应用程序的任务(App1) -

一个。检查文本文件" abc.txt"存在于SD卡的根部。

B中。如果不存在,请创建" abc.txt"在sdcard的根源。

℃。继续每隔5分钟定期将数据写入abc.txt。

第二个应用程序的任务(App2) -

一个。检查文本文件" abc.txt"存在于SD卡的根部。

B中。如果存在,请从文件" abc.txt"中读取所有数据。和阅读后删除它

现在我可以读取和写入" abc.txt"每个应用程序单独,但我面临同步问题。我想确保如果第一个应用程序正在写入文本文件,则第二个文件必须等到文本文件准备好被读取。我本来会用

synchronized

关键字曾经是一个应用程序。有人可以在这种情况下帮助我吗?

1 个答案:

答案 0 :(得分:0)

FileLock应该提供您需要的功能。您可以锁定abc.txt,也可以锁定其他文件,这些文件将始终存在,并且仅用作应用程序的系统范围锁。

来自doc:

  

多个进程可以在文件的同一区域上保存共享锁,但只有一个进程可以在文件的给定区域上保持独占锁,并且没有其他进程可以同时保持与独占锁重叠的共享锁。 / p>

您可以从FileChannel获取整个文件的独占FileLock