【问题标题】:Play 2: Asynchronous Controllers vs HTTP threads播放 2:异步控制器与 HTTP 线程
【发布时间】:2015-10-13 21:30:18
【问题描述】:

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

在这一点上,我不明白这个模型与每个请求的 HTTP 线程相比究竟有什么好处?他们说要更容易扩展并更好地在负载下工作,但我不明白为什么。

【问题讨论】:

  • 我也想知道这个,还没有找到明确的答案。一件事是线程会占用大量系统资源,因此将它们限制在性能和资源方面是一件好事。

标签: multithreading asynchronous web playframework playframework-2.0


【解决方案1】:

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

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

事件模型中存在少量请求处理线程,它们通过消息传递相互通信。这种范式专注于异步任务和函数式编程模型。

【讨论】:

    猜你喜欢
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 2015-02-27
    • 2020-01-08
    • 1970-01-01
    • 2017-11-20
    • 2012-01-17
    • 2013-10-28
    相关资源
    最近更新 更多