Performant Java programmieren

Kapitel 9.2.2 - Threads

S. 199: In der Methode Runner.run() von Listing 9.1 muss es heißen:

public void run(Runnable runnable) {
   getRunnerThread(runnable).work();
}
Im Buch-Listing wird fälschlicherweise die Methode run() anstelle von work() aufgerufen.

Kapitel 9.2.2 - Threads

S. 201: In der Methode pop() der Klasse LimitedStack muss der Array in der Position des soeben entfernten RunnerThreads auf null gesetzt werden. Dies ist auch im abgedruckten Listing korrekt beschrieben. Der Code auf der CD ist jedoch fehlerhaft.

Kapitel 9.2.2 - Threads

S. 201: In der Methode push() der Klasse LimitedStack wird false zurückgegeben, wenn size == values.length - 1. Dies ist falsch und führt dazu, dass der Stack immer ein Element weniger hat als vorgesehen. Richtig muss es heißen:

public boolean push(RunnerThread rt) {
   if (size == values.length) return false;
   values[size++] = rt;
   return true;
}

Kapitel 9.2.2 - Threads

S. 202: Im Konstruktor von RunnerThread wird ein Thread instanziiert, allerdings fälschlicherweise ohne ein Runnable Objekt. In Listing 9.2 muss es heißen:

RunnerThread() {
   thread = new Thread(this, "Runner-" + count++);
   thread.setDaemon(true);
}