2016-06-02 11 views
1

나는 다음과 같은 코드가 있습니다완료되지 않은

val f1: Future[Unit] = Future { 
    Thread sleep 5 
    println(1) 
    } 

    val f2: Future[Unit] = Future { 
    Thread sleep 10000 
    println(2) 
    } 

    def main(args: Array[String]): Unit = async { 
    await(f1) 
    await(f2) 
} 

내가 마지막 await 방법이 종료 된 후 메인 스레드가 종료하고자합니다.

어떻게하면됩니까?

답변

2

글쎄, async/awaitFuture이므로, 역시 기다려야합니다.

import scala.concurrent.Await 
import scala.concurrent.duration._ 

def main(args: Array[String]): Unit = { 
    val future = async { 
    await(f1) 
    await(f2) 
    } 
    Await.result(future, Duration.Inf) 
} 
+0

'Await.ready'는 아마도이 경우 더 좋을 것입니다. – TeWu

관련 문제