1

Play Framework 2 中的所有操作都是异步的吗?还是我必须故意使用 Promises 来实现这一点?

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

4

2 回答 2

2

这取决于您所说的异步是什么意思。

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

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

于 2013-05-07T23:03:25.363 回答
2

为了增加斯蒂芬的答案,

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

是的

于 2013-05-08T03:12:44.053 回答