私には3つのクラスがあり、そこから3つのサービスを開始します。これら3つのサービスは同時に開始されます。
これらの各サービスクラスには、その特定のサービスが開始されているかどうかを知るためのコールバックメソッドがあります。
同時に開始されますが、これら3つのうちどのサービスが最初に開始されるかという順序はありません。
最後のサービスの開始時に通知を受けるために使用する最善の方法を誰かに教えてもらえますか?
どんな助けでも大歓迎です。
私はそれを次のようにします:
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();
}
}
}
Runnable
3つのサービスすべてが開始されたら通知される必要があるを取得するクラスを作成します。synchronized
をインクリメントするメソッドを維持します。Runnable.run()
カウンタをインクリメントするメソッドは、カウントがに達すると呼び出します3
。incrementCounter()
、サービスが完了して実行されたらメソッドを呼び出します。お役に立てれば。