我是新来的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