Я думаю, вы ищете шаблон Observer . Java имеет некоторые стандартные интерфейсы (java.util.Observer, java.util.Observable), хотя они не зависят от типа; так что вы можете рассмотреть свой собственный, если домен, кажется, требует этого.
class MyThread implements Runnable {
Observable observable;
public MyThread(EventHandler observer) {
observable = new Observable();
observable.addObserver(observer);
}
public void run() {
while (!done()) {
Object result = doStuff();
observable.notifyObservers(result);
}
}
}
// might have this be singleton
class EventHandler implements Observer {
public synchronized void update(Observable o, Object arg) {
accomplishOtherTask();
}
}