multithreading - Play 2 : Asynchronous Controllers vs HTTP threads

标签 multithreading asynchronous web playframework playframework-2.0

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

在这一点上,我不了解此模型与每个请求的HTTP线程相比的真正好处是什么?他们说要使其更容易扩展并在负载下更好地工作,但是我不知道为什么。

最佳答案

Playframework使用事件模型而不是传统的线程模型。

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

在事件模型中,存在少量的请求处理线程,它们通过消息传递相互通信。该范例集中在异步任务和功能编程模型上。

关于multithreading - Play 2 : Asynchronous Controllers vs HTTP threads,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33112981/

相关文章:

php - 如何异步运行多个 fsockopen()

c# - 当我在单独的线程上将随机数添加到列表框时,UI 卡住

multithreading - IllegalMonitorStateException调用wait()和notify()

javascript - 是否可以将多个异步社交按钮加载器合并为一个?

html - 在多个页面之间动态分隔网页内容

适合初学者的 Python 框架

spring - 使用 QueryDsl 谓词和 spring jpa 按降序排序从结果集中获取第一行

C# - 在控制台中显示倒计时器以通过 ReadLine() 进行用户输入

multithreading - Delphi中从函数指针调用函数

iphone - 如何让ui始终响应并进行后台更新?