私はscalaを使い慣れていません。コードベースでこのコードが何をしているのかを理解しようとしています。私はのようなことを行い、いくつかのScalaのコードを見てきましたスカラ未来が割り当てられていない、これは何ですか?
:
仕様の一部を削除し、私は理解していないチャンクはこれです
val someA = something.createSomeA(....)
Future {
someA.doSomething1(....)
someA.doSomething2(.....)
}
// then log some things unrelated to the future
someA
// end of func
を私は本当に何を理解していませんこの場合、未来は何にも割り当てられていないので、未来はやっています。未来がここで何をしているのか誰かが説明できますか? 詳細はdoSomethingsが実際に行っていることに依存していることは知っていますが、誰かが一般的にこれについて何か説明できますか?私は、Futuresが変数に代入され、後で何らかの方法で補完をチェックするときに、Futuresの使用に慣れています。
ご了承ください。 (貧弱な書式設定には申し訳ありませんが、私は携帯電話からこれをやっています)
今後の完了前に終了するメインスレッドはどうですか?その未来を待つ必要はありませんか? –
@VictorMoroz JVMは、デーモンスレッドのみがシステムに残っている場合に存在します。したがって、エグゼキュータがデーモン・スレッドを作成するように構成されている場合(デフォルトではtrue)、またはデーモン以外のスレッドがまだ実行されていない場合は、メイン・スレッドが存在してもプロセスは停止します。 デーモンスレッドのみを作成している場合は、mainを終了するとすべてが終了します。これは通常は問題ではありません。なぜなら、あなたは通常、メイン(ほぼ)決して退場しない「サービス」のような設定でこのようなコードを見るからです。 – Dima