Выполняя этот код scala, у меня нет вывода в консоли. (Я действительно не понимаю, что происходит)Использование фьючерсов и Thread.sleep
Если я удалю Console.println("Console.println OK!")
=> все кажется прекрасным.
Если я удалю Thread.sleep(2000)
=> все кажется прекрасным.
У вас есть идеи по этому вопросу? Большое спасибо!
Клеман
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.duration._
import scala.concurrent.{Await, Future}
import scala.language.postfixOps
object ScalaFuture {
def main(args: Array[String]) {
val f: Future[String] = Future {
Thread.sleep(2000)
"future value"
}
f.onSuccess {
case s => {
Console.println("Console.println OK!")
System.out.println("System.out.println OK!")
}
}
Await.ready(f, 60 seconds)
}
}
Прекрасно работает для меня. Что произойдет, если вы спите в течение нескольких секунд после 'Await.ready'? –
Если я сплю несколько секунд после 'Await.ready', он отлично работает => У меня есть выход. – ctamisier
Затем он должен выйти, прежде чем 'onSuccess' может выстрелить. –