以下は、私がタスクを同時に実行するクラスです。私の問題は、すべての機能の結果が得られてもアプリケーションが終了しないということです。私はスレッドプールが私の仕事の後でも私のアプリケーションを生きているリードしている停止されていないと思われる。私はそれを把握するためにたくさんのグーグルだが運がない。ここで私は何が欠けているのですか?あなたがFuture
秒の反復可能で動作するときScala将来の並行処理の問題
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) }
}
}
}
}
}
どのようにこれらの先物を作成しますか?私は例を実行しようとしました。 ListBuffer.fill(50)(Future( "asd"))を使ってダミー先物を作成しました。本体が何かがコンソールに印刷される前に終了しました。私は、メソッド呼び出しの後にThread.sleep(1000)を追加しました。プログラムは20回印刷され、1000秒後に終了しました。だから、あなたの先物や何かに問題があるかもしれませんか?スレッドの詳細を教えてください。 – NieMaszNic