• 即时通讯开发之Netty入门长文


    本文适合对Netty一无所知的Java NIO网络编程新手阅读,为了做到这一点,内容从最基本介绍到开发环境的配置,再到第一个Demo代码的编写,事无巨细都用详细的图文进行了说明。

     

    所以本文这对于新手来说帮助很大,但对于老司机来说,就没有必要了。老司机请绕道哦。

    在了解Netty之前,我们非常有必要简要了解一下Java网络编程模型的基本常识,具体说也就是BIO、NIO和AIO这3个技术概念。

    BIO、NIO和AIO这三个概念分别对应三种通讯模型:阻塞、非阻塞、非阻塞异步,具体这里就不详细写了。网上好多博客说Netty对应NIO,准确来说,应该是既可以是NIO,也可以是AIO,就看你怎么实现。

    这三个概念的区别如下:

        1)BIO:一个连接一个线程,客户端有连接请求时服务器端就需要启动一个线程进行处理,线程开销大。
        2)NIO:一个请求一个线程,客户端发送的连接请求会注册到多路复用器上,多路复用器轮询到该连接有I/O请求时才启动一个线程进行处理;
        3)AIO:一个有效请求一个线程,客户端的I/O请求都是由OS先完成了再通知服务器应用去启动线程进行处理。


    通俗地概括一下就是:

        1)BIO是面向流的,NIO是面向缓冲区的;
        2)BIO的各种流是阻塞的,而NIO是非阻塞的&#x

  • 相关阅读:
    kafka 调优
    Aeron:Online Resources
    vue柱状图+折线图组合
    生产环境Java应用服务内存泄漏分析与解决
    第 3 章 栈和队列(单链队列)
    uniapp开发小程序项目
    networkx学习记录
    @Controller与@RestController
    三、创建各个展示模块组件
    MySQL Linux服务器快照克隆引起的binlog日志无法正常删除导致文件系统满
  • 原文地址:https://blog.csdn.net/wecloud1314/article/details/126784353