Multithreading Play是异步或非阻塞框架

Multithreading Play是异步或非阻塞框架,multithreading,asynchronous,playframework,akka,nonblocking,Multithreading,Asynchronous,Playframework,Akka,Nonblocking,我读过几篇教程,其中提到了“无阻塞”的everywhere play。我很困惑,说非阻塞是指异步还是非阻塞I/O 根据我的理解,当play server上接收到任何http请求时,它会分配一个专用线程来处理该请求,并保留该线程,直到返回响应为止。那么它是如何非阻塞的呢 同样,异步是否意味着主线程可以生成一个新线程,并将其工作委托给它,然后运行下一条语句?(为此,我们需要使用akka)要理解这一点,您需要了解scala中的未来是如何工作的。未来不会停止程序的执行。所有期货都是非阻塞性的。我建议你仔

我读过几篇教程,其中提到了“无阻塞”的everywhere play。我很困惑,说非阻塞是指异步还是非阻塞I/O

根据我的理解,当play server上接收到任何http请求时,它会分配一个专用线程来处理该请求,并保留该线程,直到返回响应为止。那么它是如何非阻塞的呢


同样,异步是否意味着主线程可以生成一个新线程,并将其工作委托给它,然后运行下一条语句?(为此,我们需要使用akka)

要理解这一点,您需要了解scala中的未来是如何工作的。未来不会停止程序的执行。所有期货都是非阻塞性的。我建议你仔细阅读以下内容:

因为play的异步库是建立在Scala的未来之上的。一旦你完成了,你将有足够的知识来回答你自己的问题。此外,如果您需要更多关于如何在游戏中使用期货的信息,请阅读此内容:


嗯,它没有指定一个专用线程。你在哪里读到的?我在我的项目中使用play,我在工作时观察到,除非没有返回响应,否则线程正在等待。我们正在调用外部服务,直到该外部服务给出响应,线程仍然被阻塞。