// This example is from the book _Java Threads_ by Scott Oaks and Henry Wong.
// Written by Scott Oaks and Henry Wong.
// Copyright (c) 1997 O'Reilly & Associates.
// You may study, use, modify, and distribute this example for any purpose.
// This example is provided WITHOUT WARRANTY either expressed or implied.
// Sample TargetNotify -- Chapter 4, p. 81.
public class TargetNotify {
private Object Targets[] = null;
public TargetNotify (int numberOfTargets) {
Targets = new Object[numberOfTargets];
for (int i = 0; i < numberOfTargets; i++) {
Targets[i] = new Object();
}
}
public void wait (int targetNumber) {
synchronized (Targets[targetNumber]) {
try {
Targets[targetNumber].wait();
} catch (Exception e) {}
}
}
public void notify (int targetNumber) {
synchronized (Targets[targetNumber]) {
Targets[targetNumber].notify();
}
}
}
|