2012-09-12 49 views
0

我有三個類別,我從中開始三個服務。這三項服務將同時啓動。聽衆通知完成一系列事件(開始同時服務)

我在每個這些服務類中都有回調方法來知道該特定服務是否已啓動。

雖然它們是同時啓動的,但沒有順序讓這三個服務中的哪一個首先啓動。

有人可以讓我知道最好的方法來使用,以便我在最後一次服務開始時得到通知嗎?

任何幫助表示讚賞。

回答

1

如下我會做到這一點:

public class CounterAndNotifier 
{ 
    private int counter = 0; 
    private int count; 
    private Runnable runnable; 

    public CounterAndNotifier(int count, Runnable runnable) 
    { 
     this.count = count; 
     this.runnable = runnable; 
    } 

    public synchronized void incrementCounter() 
    { 
     counter++; 
     if (counter == count) { 
      runnable.run(); 
     } 
    } 
} 
  1. 創建一個類,需要一個Runnable應告知一旦所有的三個服務啓動。
  2. 本課程保留一個計數器和一個​​方法來增加計數器。
  3. 一旦計數達到3,增加計數器的方法將調用Runnable.run()
  4. 創建該類的一個對象,並在服務完成並運行後將其傳遞給三個服務以調用incrementCounter()方法。

希望這會有所幫助。

+0

任何示例的在線或參考鏈接都會對 – user1400538

+0

@ user1400538有很大的幫助,通過一個簡單的CounterAndNotifier更新我的響應,它可以做到我在下面描述的那樣。 – Vikdor

+0

對不起,我應該從哪個類調用CounterAndNotifier構造函數? – user1400538