以下是我的課程,我同時運行任務。我的問題是,即使獲得所有功能的結果,我的應用程序也永遠不會結束。我懷疑線程池並沒有關閉,即使在執行任務之後,我的應用程序仍然處於活動狀態。相信我,我已經使用了很多功能,但沒有成功。我在這裏錯過了什麼?Scala Future concurrency問題
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