0

我有三个班级,我从中开始了三个服务。这三个服务将同时启动。

我在每个服务类中都有回调方法,以了解该特定服务是否已启动。

尽管这三个服务是同时启动的,但没有顺序首先启动这三个服务。

有人可以告诉我最好的使用方法,以便在上次服务开始时通知我吗?

任何帮助表示赞赏。

4

1 回答 1

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. 此类维护一个计数器和一个synchronized递增计数器的方法。
  3. Runnable.run()一旦计数达到,递增计数器的方法将调用3
  4. 创建此类的一个对象,并将其传递给三个服务,以便incrementCounter()在服务完成并运行后调用该方法。

希望这可以帮助。

于 2012-09-12T16:34:49.677 回答