java - 异步编程在 Netty 中是如何工作的?它会让事情变得更健谈吗?

标签 java asynchronous netty

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

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

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

这是正确的吗?

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

最佳答案

没有。

异步使用 Netty 意味着管理连接和插入 I/O 的操作在单独的线程中执行,并且稍后通知原始调用者请求操作的结果,或者当有可用数据时回调感兴趣的监听器待阅读。

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

When dealing with services, or client/server model, this means you will connect/disconnect from the server more so when doing asych programming correct? (with the benefit of not blocking). Is this correct?

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

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

关于java - 异步编程在 Netty 中是如何工作的?它会让事情变得更健谈吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10986095/

相关文章:

java - 运行 Netty HttpStaticFileServer 示例

java - 并非所有 JComponent 都被绘制

带有 async false 的 jQuery ajax 调用不起作用

c# - NamedPipeServerStream.EndWaitForConnection() 在使用时挂起

javascript - 组件通过 props 发送未定义的信息,因为它是在数据库查询结束之前安装的

java - Netty IO 从类外部写入服务器

playframework - Netty 的长期本地监控

java - 创建子类的实例是否会自动运行父类(super class)的构造函数?

java - 如何使用 BorderLayout 将两个组件放入 JPanel?

java - 从 jboss AS 6 类加载中排除 jar