Playframework 1.x 静态方法如何以线程安全的方式工作

Posted

技术标签:

【中文标题】Playframework 1.x 静态方法如何以线程安全的方式工作【英文标题】:How Playframework 1.x static method works in a thread safe way 【发布时间】:2013-04-19 17:56:45 【问题描述】:

可能是一个愚蠢的问题,但我是新手学习 Play 框架 1.2.5。 我注意到控制器操作都是静态方法,我假设每个请求都将在单独的线程中处理。如果是这样,Play 框架如何确保这些静态控制器方法是线程安全的?我认为,只要我们不在控制器方法之间共享任何东西,那么我们就很好(?),如果我错了,请纠正我。

提前致谢。

【问题讨论】:

【参考方案1】:

是的,我们很好。如您所知,HTTP 是无状态,因此请求之间不会共享任何内容。 Play 在处理请求时使用ThreadLocals。每个请求都有自己的线程,因此您可以完全控制当前请求 - 响应生命周期。

如果你想在控制器之间共享数据,你有 session 对象,但是它非常小并且只接受 Strings。对于其他数据类型或不同的共享实现,您应该使用Cache 实现。有关详细信息,请参阅 session 和 cache 文档。

祝你好运!

【讨论】:

以上是关于Playframework 1.x 静态方法如何以线程安全的方式工作的主要内容,如果未能解决你的问题,请参考以下文章