Skip to content

Lab 5

Andrzej Głuszak requested to merge lab5 into main

Chciałbym całkowicie zastąpić scenariusz o Future'ach i ForkJoin nową wersją, skupiającą się głównie na CompletableFuture'ach. To API jest dużo nowsze i - odnoszę wrażenie - znacznie popularniejsze obecnie od starego, a poza tym można na jego przykładzie wytłumaczyć popularny obecnie paradygmat programowania asynchronicznego:

https://docs.scala-lang.org/overviews/core/futures.html https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await https://docs.swift.org/swift-book/LanguageGuide/Concurrency.html https://rust-lang.github.io/async-book/01_getting_started/04_async_await_primer.html https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/await

Zadanie punktowane to byłoby przepisanie przykładu BankDatabase na wersję asynchroniczną, korzystającą z CompletableFuture.

W treści scenariusza (która jeszcze nadal powstaje) potrzebujemy wytłumaczyć, czym różnią się od siebie metody thenApply (map w językach funkcyjnych) i thenCompose (flatMap), a także jak się do nich mają wersje async.

Obsługą wyjątków raczej bym się nie przejmował.

Jako przykład dołączyłem też uproszczoną wersję klasy Future, która fajnie pokazuje zastosowanie kolejek synchronicznych z poprzednich zajęć.

Edited by Andrzej Głuszak

Merge request reports