我有三个类(class),从这三个类(class)开始我提供三项服务。这三个服务将同时启动。
我在每个服务类中都有回调方法来了解该特定服务是否已启动。
尽管这三个服务是同时启动的,但没有先后顺序。
有人可以告诉我最好的使用方法,以便我在上次服务开始时收到通知吗?
感谢任何帮助。
最佳答案
我会这样做:
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
,递增计数器的方法就会调用Runnable.run()
。 - 创建此类的一个对象,并将其传递给三个服务,以便在服务完成启动并运行后调用
incrementCounter()
方法。
希望这有帮助。
关于java - 通知一系列事件完成的监听器(启动同步服务),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12392553/