pp.08.04-ConcurrencyMonteCarloPiCF

Monte-Carlo-Algorithmus zur Annäherung von \(\pi\) – mit CompletableFuture

  • Projekt: pp.08.04-ConcurrencyMonteCarloPiCF
  • Bearbeitungszeit: 15 Minuten
  • Musterlösung: 15 Minuten
  • Kompatibilität: mindestens Java SE 16

Wie \(\pi\) hier berechnet wird, ist nicht prüfungsrelevant. Die Anwendung des CompletableFuture-Frameworks allerdings schon.

Aufgaben

  • Die Berechnung von \(\pi\) soll nun auf das CompletableFuture-Framework umgestellt werden. Sie brauchen deshalb keinen eigenen Threadpool als ExecutorService erzeugen. Das CompletableFuture-Framework verwendet den commonPool. Die nebenläufigen Berechnungen können mit supplyAsync gestartet werden. Die Addition der Teilergebnisse kann durch thenCombineAsync asynchron vollzogen werden.
  • Führen Sie das Programm mehrfach aus und messen Sie dabei die Zeit. Vergleichen Sie den Aufwand mit der sequentiellen und Future-Lösung. Vergleichen Sie auch Übersichtlichkeit und Aufbau der Lösung mit Future<...> und CompletableFuture<...>.