可能是一个愚蠢的问题,但我小白学习播放框架1.2.5。 我注意到,该控制器动作都是静态方法,我以为每个请求将在一个单独的线程来处理。 如果是这样的话,游戏的框架如何确保这些静态控制方法是线程安全的吗? 我想,只要我们不共享控制器方法之间的任何东西,然后我们是很好的(?),请纠正我,如果我错了。
提前致谢。
可能是一个愚蠢的问题,但我小白学习播放框架1.2.5。 我注意到,该控制器动作都是静态方法,我以为每个请求将在一个单独的线程来处理。 如果是这样的话,游戏的框架如何确保这些静态控制方法是线程安全的吗? 我想,只要我们不共享控制器方法之间的任何东西,然后我们是很好的(?),请纠正我,如果我错了。
提前致谢。
是的,我们是相当不错的。 正如你所知道HTTP是无状态的 ,所以什么也不会请求之间共享。 Play使用ThreadLocal
s,而processiong请求。 每个请求有它自己的线程,所以你必须在当前请求的完全控制 - 响应生命周期。
如果你想分享控制器之间的数据,你session
不过对象是相当小的,只接受String
秒。 对于其它数据类型或共享不同的实现方式,你应该使用一个Cache
实现。 欲了解更多信息,请参阅会话和缓存单证。
祝好运!