Play Framework 2的所有操作都是异步的吗?

时间:2013-05-07 21:36:15

标签: playframework-2.0

Play Framework 2中的所有操作都是异步的吗?或者我是否必须故意使用Promise来实现这一目标?

澄清一下,IO(NIO)是否在与实际操作逻辑不同的线程上执行?

2 个答案:

答案 0 :(得分:2)

这取决于异步的含义。

所有播放操作都是非阻塞的,因为接受HTTP请求的IO线程与运行操作的IO线程不同,并且永远不会阻止等待操作完成。所以,是的,(HTTP)IO是在与实际操作逻辑不同的线程上执行的。

但是,这些操作本身可能包含可能需要一段时间的计算。因此,它们可能会阻塞它们执行的线程。执行数据库操作时通常就是这种情况,因为大多数数据库驱动程序都在阻塞。

答案 1 :(得分:2)

要添加到Stephane的答案,

  

澄清一下,IO(NIO)是否在不同的线程上执行   实际行动逻辑

是的