Folgendes ist meine Klasse, wo ich Aufgaben gleichzeitig ausführen. Mein Problem ist, dass meine Anwendung niemals endet, auch nicht nach dem Ergebnis für alle Funktionen. Ich vermute, dass Thread-Pool nicht heruntergefahren wird, was meine Anwendung auch nach meinen Aufgaben am Leben hält. Glaubt mir, ich habe viel gegoogelt, um es herauszufinden, aber kein Glück. Was ich hier vermisse?Scala Future Nebenläufigkeit Problem
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.Future
import scala.collection.mutable.ListBuffer
import scala.util.Failure
import scala.util.Success
object AppLauncher{
def launchAll(): ListBuffer[Future[String]] = {
// My code logic where I launch all my threads say 50
null
}
def main(args:Array[String]):Unit= {
register(launchAll())
}
def register(futureList: ListBuffer[Future[String]]): Unit =
{
futureList.foreach { future =>
{
future.onComplete {
case Success(successResult) => {
println(successResult)
}
case Failure(failureResult) => { println(failureResult) }
}
}
}
}
}
Wie erstellen Sie diese Futures? Ich habe versucht, das Beispiel zu führen. Ich habe Dummy-Futures mit ListBuffer.fill (50) (Future ("asd")) erstellt. Der Hauptteil wurde fertiggestellt, bevor etwas auf die Konsole gedruckt wurde. Ich habe Thread.sleep (1000) nach dem Aufruf der Registermethode hinzugefügt. Das Programm druckte zwanzigmal und schloss nach 1000 Sekunden. Vielleicht gibt es ein Problem mit deiner Zukunft oder etwas? Können Sie weitere Details zu Ihren Threads angeben? – NieMaszNic