この投稿Angular.js with Scalatraでは、http 呼び出しは非同期であると言われています。アクターへの呼び出しが次のように行われていることがわかります。
myActor ? q
ただし、scalatra のホームページでは、AsyncResult を使用して呼び出しをカプセル化していることがわかります。
get("/"){
new AsyncResult { def is =
Future {
// Add async logic here
<html><body>Hello Akka</body></html>
}
}
}
両者に違いはありますか?最初のものは未来を返すアクターを呼び出していることを理解していますが、それは両方の呼び出しが非同期であることを意味しますか?
シンクロニシティの仕組みについてもう少し詳しく教えてください。
get("/query/:key/:value") {
contentType = formats("json")
val q = Query(params("key"), params("value"), mongoColl)
myActor ? q
}
httpスレッドは解放されていますか?