如何可靠地在 2 个定时器任务 Java 中创建一个锁(所以当其他任务 运行 时会等待)
How to create a Lock in 2 timer tasks Java reliably (So will wait when other is running)
我是运行2个定时任务。有点像
@Autowired
private Insertion insertion;
@Autowired
private Updation updation;
在数据库中插入一些数据
timer.schedule(insertion,1000,5000)
public run() {
if(!Updationhappening) {
//start insertion
}
else {
//wait
}
}
用某些东西更新该数据
timer.schedule(updation,1000,5000)
if(!InsertionHappening) {
//start updation
} else {
//wait
}
但是我想在插入 运行 时暂停更新。
我知道也许我可以使用易失性变量或锁来做到这一点,但我无法获得有关此锁定系统的任何实现。任何人都可以建议 2 个不同节点之间的示例实现吗
提前致谢
您可以使用 PriorityBlockingQueue
命令更新和插入,以优先处理插入。
感谢大家的投入
我找到了解决问题的方法
我使用 REENTRANT Locks 来解决这个问题。在全局文件中创建一个静态 Lock 对象并在两个文件中创建 lock.tryLock() 以解决问题
我是运行2个定时任务。有点像
@Autowired
private Insertion insertion;
@Autowired
private Updation updation;
在数据库中插入一些数据
timer.schedule(insertion,1000,5000) public run() { if(!Updationhappening) { //start insertion } else { //wait } }
用某些东西更新该数据
timer.schedule(updation,1000,5000) if(!InsertionHappening) { //start updation } else { //wait }
但是我想在插入 运行 时暂停更新。
我知道也许我可以使用易失性变量或锁来做到这一点,但我无法获得有关此锁定系统的任何实现。任何人都可以建议 2 个不同节点之间的示例实现吗
提前致谢
您可以使用 PriorityBlockingQueue
命令更新和插入,以优先处理插入。
感谢大家的投入
我找到了解决问题的方法 我使用 REENTRANT Locks 来解决这个问题。在全局文件中创建一个静态 Lock 对象并在两个文件中创建 lock.tryLock() 以解决问题