2

通常你调用一个服务,它会阻塞直到池中的一个线程可用,然后它返回一个结果。

使用 Netty 或一般的期货,您不会阻塞并立即返回。只有当您真正需要调用 .get() 或任何 API 的值时,您才会阻塞,直到您收到数据返回。

在处理服务或客户端/服务器模型时,这意味着您将在执行 asych 时更多地与服务器连接/断开连接。编程正确吗?(具有不阻塞的好处)。

它是否正确?

Netty 基本上是使用 SEDE(分阶段事件驱动架构)和使用 Java 的 NIO 数据类型设计的)。

4

1 回答 1

10

不。

异步使用 Netty 意味着管理连接和推送 I/O 的操作在单独的线程中执行,原始调用者稍后会被告知请求操作的结果,或者当有数据可供读取时回调感兴趣的侦听器.

您的应用程序线程可以根据需要阻塞,但这不是必需的,因为您可以定义将在异步操作完成时执行的回调。

在处理服务或客户端/服务器模型时,这意味着您将更多地与服务器连接/断开连接,所以在进行异步编程时正确吗?(具有不阻塞的好处)。它是否正确?

该段中几乎没有任何内容是正确的。

我推荐本教程作为对这些基本概念的更好解释。(完全公开,我写的)。

于 2012-06-11T20:16:45.083 回答