播放2:异步控制器与HTTP线程

时间:2015-10-13 21:30:18

标签: multithreading asynchronous web playframework playframework-2.0

Play Framework 2的Documentation表示Play是自下而上异步构建的。此外,它暗示在所谓的"默认执行上下文中存在固定数量的线程"。他们建议在此默认执行上下文之外执行长时间运行的任务,以确保应用程序不会阻止。

此时我不明白这个模型对每个请求的HTTP线程的好处是什么?他们说,为了更容易扩展和更好地在负载下工作,但我不明白为什么。

1 个答案:

答案 0 :(得分:1)

Playframework使用 evented model 而不是传统的线程模型

线程模型中存在大量处理传入请求的线程。使用此模型的服务器在池中有很多线程等待传入请求,这意味着使用内存以及共享可变状态的问题(线程共享内存和资源,这在您想要扩展时是个问题)

evented模型中存在少量请求处理线程,这些线程通过消息传递相互通信。这个范例主要关注异步任务和函数式编程模型。