更新任务的模式名称

时间:2019-05-16 12:12:20

标签: java design-patterns

我经常要解决以下问题:长时间运行的任务取决于一堆数据。数据偶尔会更新,因此必须开始执行任务,同时可能会更新数据。然后,任务必须重新开始以更新自身。在编程中如何调用此模式?番石榴中是否有结构化的帮助程序?

通过编程,我会这样做(省略了后台运行详细信息):

   AtomicBoolean iAmWorking = new AtomicBoolean(false);
   AtomicBoolean dataIsDirty = new AtomicBoolean(false);
   public void update() {
       dataIsDirty.set(true);
       if(!iAmWorking.compareAndSet(false, true)) {
           return;
       }
       while(dataIsDirty.compareAndSet(true, false)) {
           doSomethingLong();
       }
       iAmWorking.set(false);
    }

0 个答案:

没有答案