我是新來的scala,我想弄明白這個代碼在我想更新的代碼庫中做什麼。斯卡拉未來未分配,這是幹什麼的?
去除一些細節的,我不明白塊是這樣的:
我已經看到了一些Scala代碼,做喜歡的東西:
val someA = something.createSomeA(....)
Future {
someA.doSomething1(....)
someA.doSomething2(.....)
}
// then log some things unrelated to the future
someA
// end of func
我真的不明白是什麼未來是在這種情況下做的,因爲它沒有分配任何東西。有人可以解釋未來在這裏做什麼嗎? 我知道細節取決於doSomethings實際在做什麼,但是有人可以解釋一般情況嗎?我只熟悉使用期貨時他們被分配到一個變量,然後在稍後的某個方面檢查完成。
幫助將不勝感激! (對不起,格式不好,我從我的手機這樣做)
主線程在未來完成之前終止如何?你不需要等待未來嗎? –
@VictorMoroz當系統中只剩下守護進程線程時,JVM將存在。因此,如果您的執行程序配置爲創建守護程序線程(默認情況下爲true),或者還有其他非守護程序線程仍在運行,則即使在存在主線程後,該進程也會保持不變。 如果你只創建守護進程線程,那麼是的,終止主線也會終止它們。這通常不是問題,因爲你通常在類似「服務」的設置中看到類似這樣的代碼,其中main(幾乎)不會退出。 – Dima