Netty中的所有I/O操作都是异步的,这意味着任何I/O调用都会立即返回,而ChannelFuture会提供有关的信息 I/O操作的结果或状态。
    future案例

    • ChannelFuture状态
      • 未完成:当I/O操作开始时,将创建一个新的对象,新的最初是未完成的 - 它既没有成功,也没有成 功,也没有被取消,因为I/O操作尚未完成。
      • 已完成:当I/O操作完成,不管是成功、失败还是取消,Future都是标记为已完成的, 失败的时候也有具 体的信息,例如原因失败,但请注意,即使失败和取消属于完成状态
      • 注意:不要在IO线程内调用future对象的sync或者await方法。不能在channelHandler中调用sync或者 await方法 这样会阻塞服务channel的线程
    • ChannelPromise:继承于ChannelFuture,进一步拓展用于设置IO操作的结果

    image.png
    image.pngimage.png

    在后面客户端跟服务端都会看见这么两句话

    f.channel().closeFuture().sync();作用是产生一个wait()事件,保证main线程存活,否则main线程直接结束了。知道channel关闭才执行后面的操作

    image.png
    https://blog.csdn.net/yzh_1346983557/article/details/86554837?utm_medium=distribute.pc_relevant_bbs_down.none-task-blog-baidujs-2.nonecase&depth_1-utm_source=distribute.pc_relevant_bbs_down.none-task-blog-baidujs-2.nonecase
    优雅退出
    https://blog.csdn.net/yq76034150/article/details/7259474?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-4.baidujs&dist_request_id=1332041.1468.16191951119991131&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-4.baidujs
    一个bug
    image.png
    image.png
    没法优雅退出