pp.04.03-ThreadPoolSize

Thread Pools

  • Projekt: pp.04.03-ThreadPoolSize
  • Bearbeitungszeit: 10 Minuten
  • Musterlösung: 10 Minuten
  • Kompatibilität: mindestens Java SE 10

Die beiden Klassen pp.CachedRunner und pp.FixedRunner stellen jeweils die statische Methode test(Runnable r, int tries) bereit. In diesen beiden test(...)-Methoden wird ein Thread Pool angelegt. Das Runnable r wird dann tries mal im Thread Pool ausgeführt.

In pp.FixedRunner wird dafür ein Thread Pool fester Größe benutzt und in pp.Cached.Runner ein Cached Thread Pool.

Quellcode von Task

public class Task implements Runnable {

    private static final int NUMBER_OF_TASKS = 1;

    @Override
    public void run() {
        // TODO
    }

    public static void main(String... args) {
        // var pool = CachedRunner.test(new Task(), NUMBER_OF_TASKS);
        var pool = FixedRunner.test(new Task(), NUMBER_OF_TASKS);
    }

}

Aufgaben

  • Inspizieren Sie den Thread Pool von Runner.test() indem Sie die run()-Methode mit eigenem Code füllen. Versuchen Sie für beide Runner nur durch Testläufe zu ergründen, wie groß der Thread Pool jeweils ist bzw. wie er sich verhält. Verwenden Sie dabei statische, anonyme innere Klassen oder Lambda-Ausdrücke.
  • Fahren Sie am Ende den Threadpool nach einer kurzen Wartezeit durch ein Scheduled Event herunter.