scala 및 scalaz의 초보자로서 약속을 사용할 때 문제가 발생했습니다. 내 코드는 이렇게.scalaz의 약속을 사용할 때 호출 함수
import scalaz._
import Scalaz._
object Main2 extends Application {
def sleeper() = {
Thread.sleep(2000)
}
val message = promise {
println("begin")
sleeper
println("ok")
"ok"
}
Thread.sleep(5000)
println("try to get")
println(message())
}
다음 출력은 이상하게 보입니다. 슬리퍼 메서드가 호출되지 않았고 스레드가 차단 된 것 같습니다. - 내가 인라인 잠을 호출 침목을 교체하는 경우
begin
try to get
는하지만, 그것을 잘 보인다 - 여기
object Main2 extends Application {
def sleeper() = {
Thread.sleep(2000)
}
val message = promise {
println("begin")
Thread.sleep(2000)
println("ok")
"ok"
}
Thread.sleep(5000)
println("try to get")
println(message())
}
출력 -
begin
ok
try to get
ok
나는 왜 이해가 안 할 수는 전문가는 조언을 해주시겠습니까?