gpt4 book ai didi

java线程通信,独立文件读写

转载 作者:行者123 更新时间:2023-12-01 12:07:29 25 4
gpt4 key购买 nike

Java。我有两个线程。人们将持续监视某些事件,并根据这些事件更新(添加或删除)文件。另一个线程是计时器任务事件,将定期更新同一文件。 我希望线程在其他线程未访问文件时更新文件。我无法使用锁,因为文件更新代码部分对于每个线程和不同的 java 类都是独立的。我怎样才能这样做?提前致谢。

最佳答案

您可以使用同步。

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) {
..
..
..
}
}

因此只有一个线程可以编辑/删除/添加文件。

如果一个线程正在添加,第二个线程正在尝试删除,那么它将等待第一个线程添加。

关于java线程通信,独立文件读写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27478888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com