如何可靠地在 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;
  1. 在数据库中插入一些数据

    timer.schedule(insertion,1000,5000)
    
    public run() {
        if(!Updationhappening) {
            //start insertion
        }
        else {
           //wait
        }
    }
    
  2. 用某些东西更新该数据

    timer.schedule(updation,1000,5000)
    
    if(!InsertionHappening) {
        //start updation
    } else {
        //wait
    }
    

但是我想在插入 运行 时暂停更新。

我知道也许我可以使用易失性变量或锁来做到这一点,但我无法获得有关此锁定系统的任何实现。任何人都可以建议 2 个不同节点之间的示例实现吗

提前致谢

您可以使用 PriorityBlockingQueue 命令更新和插入,以优先处理插入。

感谢大家的投入

我找到了解决问题的方法 我使用 REENTRANT Locks 来解决这个问题。在全局文件中创建一个静态 Lock 对象并在两个文件中创建 lock.tryLock() 以解决问题