通常您调用服务,它会阻塞直到池中的线程可用,然后返回结果。
使用 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/