Java的。我有两个主题。一个将持续监视某些事件,并根据事件,它将更新(添加或删除)一个文件。另一个作为计时器任务事件的线程将定期更新同一个文件。 我希望线程在另一个线程没有访问文件时更新文件。我无法使用锁,因为文件更新代码部分对于每个线程和不同的java类是独立的。我怎么能这样做?提前谢谢。
答案 0 :(得分:1)
您可以使用同步。
public synchronized void update() {
..
..
..
}
所以只有一个线程访问该方法。其他人会等待锁定。
如果您有添加,更新,删除方法 然后,
private static Object LOCK = new Object();
public void update() {
synchronized(LOCK) {
..
..
..
}
}
public void add() {
synchronized(LOCK) {
..
..
..
}
}
public void delete() {
synchronized(LOCK) {
..
..
..
}
}
所以只有一个线程能够编辑/删除/添加文件。
如果一个线程正在添加,第二个线程正在尝试删除,那么它将等待第一个线程添加。
答案 1 :(得分:0)
synchronized void updateFILE
{
//Your operation here
}
因此,一个线程可以执行操作..您可以查看here
答案 2 :(得分:0)
也许你可以: