Kapitel 18. Gleichzeitigkeit mit Scala Futures und Akka Actors

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

In Scala kannst du weiterhin Java-Threads verwenden:

val thread = new Thread {
    override def run =
        // put your long-running code here ...
        Thread.sleep(100)
        println("Hello, world")
}
thread.start

Futures und das Actor-Modell sind jedoch die bevorzugten Ansätze für Gleichzeitigkeit:

Futures

Sie eignen sich gut für einmalige "führe diese relativ langsame und möglicherweise langwierige Berechnung durch und rufe mich mit einem Ergebnis zurück, wenn du fertig bist"-Verarbeitung.

Schauspieler

Sie eignen sich gut für Prozesse, die parallel laufen, lange Zeit bestehen und während ihrer Lebensdauer auf viele Anfragen reagieren können.

Sowohl Futures als auch Actors ermöglichen es dir, Code auf einer viel höheren Abstraktionsebene als Threads zu schreiben. Sobald du dich mit ihnen auskennst, kannst du dich auf die Lösung des jeweiligen Problems konzentrieren, anstatt dich um die Low-Level-Probleme von Threads, Sperren und gemeinsam genutzten Daten kümmern zu müssen.

Akka und Scala 3

Zum Zeitpunkt der Erstellung dieses Artikels wurde Akka noch nicht auf Scala 3 portiert. Daher verwenden alle Beispiele in diesem Kapitel die neueste Version von Scala 2.

Futures

Im Future Scaladoc heißt es: "Ein Future steht für einen Wert, der derzeit nicht verfügbar sein kann, aber irgendwann verfügbar sein ...

Get Scala Kochbuch, 2. Auflage now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.