Bằng cách thực thi mã scala này, tôi không có bất kỳ đầu ra nào trong bảng điều khiển. (Tôi thực sự không hiểu điều gì đang xảy ra)Sử dụng tương lai và Thread.sleep
Nếu tôi xóa Console.println("Console.println OK!")
=> mọi thứ có vẻ ổn.
Nếu tôi xóa Thread.sleep(2000)
=> mọi thứ có vẻ ổn.
Bạn có bất kỳ ý tưởng nào về điều này không? Cảm ơn nhiều!
Clément
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)
}
}
Làm việc tốt cho tôi. Điều gì sẽ xảy ra nếu bạn ngủ trong vài giây sau khi 'Await.ready'? –
Nếu tôi ngủ vài giây sau khi "Đang chờ", nó hoạt động tốt => Tôi có đầu ra. – ctamisier
Sau đó, nó phải được thoát trước khi 'onSuccess' có thể kích hoạt. –